10 recursos úteis do R que você talvez não conheça
R está repleto de uma variedade de funções. Abaixo darei dez dos mais interessantes deles, que muitos talvez não conheçam. O artigo apareceu depois que descobri que minhas histórias sobre alguns dos recursos do R que uso em meu trabalho foram recebidas com entusiasmo por outros programadores. Se você já sabe tudo sobre isso, peço desculpas por desperdiçar seu tempo. Ao mesmo tempo, se você tiver algo para compartilhar, recomende algo útil nos comentários.
Lembramos:para todos os leitores de "Habr" - um desconto de 10 rublos ao se inscrever em qualquer curso Skillbox usando o código promocional "Habr".
função de comutação
Eu realmente gosto de switch(). Na verdade, é um atalho conveniente para uma instrução if ao selecionar um valor com base no valor de outra variável. Acho isso especialmente útil quando estou escrevendo código que precisa carregar um conjunto específico de dados com base em uma seleção anterior. Por exemplo, se você tiver uma variável chamada animal e quiser selecionar um conjunto específico de dados dependendo se o animal é um cachorro, um gato ou um coelho, escreva isto:
Este recurso será útil em aplicativos Shiny onde você precisa carregar diferentes conjuntos de dados ou arquivos de ambiente dependendo de um ou mais itens do menu de entrada.
Teclas de atalho para RStudio
Este hack não é tanto para R, mas para RStudio IDE. No entanto, as teclas de atalho são sempre muito convenientes, permitindo economizar tempo ao inserir texto. Meus favoritos são Ctrl+Shift+M para o operador %>% e Alt+- para o operador <-.
Para visualizar todas as teclas de atalho, basta pressionar Alt+Shift+K no RStudio.
pacote flexdashboard
Quando você precisa iniciar rapidamente seu painel Shiny, não há nada melhor do que o pacote de painel. Ele oferece a capacidade de trabalhar com atalhos HTML, que por sua vez tornam mais fácil e descomplicada a criação de barras laterais, linhas e colunas. Também existe a possibilidade de utilizar uma barra de título, que permite colocá-la em diferentes páginas do aplicativo, deixar ícones, atalhos no Github, endereços de e-mail e muito mais.
O pacote permite que você trabalhe dentro da estrutura do Rmarkdown, para que você possa colocar todos os aplicativos em um arquivo Rmd, e não distribuí-los entre diferentes servidores e arquivos de UI, como é feito, por exemplo, usando o glossydashboard. Eu uso o flexdashboard sempre que preciso criar um protótipo de painel simples antes de trabalhar em algo complexo. Este recurso permite criar um protótipo em uma hora.
req e validar funções em R Shiny
Desenvolver em R Shiny pode ser confuso, especialmente quando você recebe mensagens de erro estranhas que dificultam a compreensão do que está acontecendo. Mas com o tempo, o Shiny se desenvolve e melhora, cada vez mais funções aparecem aqui que permitem entender a causa do erro. Portanto, req() resolve o problema com um erro “silencioso”, quando geralmente não está claro o que está acontecendo. Ele permite exibir elementos da IU associados a ações anteriores. Vamos explicar com um exemplo:
saída$go_button < — brilhante::renderUI({
# apenas exibe o botão se uma entrada de animal tiver sido escolhida
validar() verifica tudo antes de renderizar e oferece a opção de imprimir uma mensagem de erro - por exemplo, que o usuário carregou o arquivo errado:
#obtém o arquivo de entrada csv
inFile < — entrada$arquivo1
dados < — inFile$datapath
# renderiza a tabela somente se for cachorro
brilhante::renderTable({
# verifique se é o arquivo do cachorro, não de gatos ou coelhos
brilhante::validar(
need("Nome do Cachorro" %in% colnames(data)),
“Coluna Nome do cachorro não encontrada – você carregou o arquivo correto?”
)
Armazenando suas credenciais no ambiente do sistema
Se você planeja compartilhar código que exige a inserção de credenciais, use o ambiente do sistema para evitar hospedar suas próprias credenciais no Github ou em outro serviço. Colocação de exemplo:
Agora você pode fazer login usando variáveis de ambiente:
banco de dados < — DBI::dbConnect(
drv = odbc::odbc(),
dsn = Sys.getenv("DSN"),
uid = Sys.getenv("UID"),
pwd = Sys.getenv("PASS")
)
É ainda mais conveniente (especialmente se você usa os dados com frequência) defini-los como variáveis de ambiente diretamente no sistema operacional. Neste caso, eles estarão sempre disponíveis e não será necessário especificá-los no código.
Automatize o tidyverse com modelador
O pacote styler pode ajudá-lo a limpar seu código; ele tem muitas opções para trazer automaticamente o estilo do código para o tidyverse. Tudo que você precisa fazer é executar styler::style_file() em seu script problemático. O pacote fará muito (mas não tudo) para restaurar a ordem.
Parametrizando documentos R Markdown
Então você criou um ótimo documento R Markdown no qual analisa vários fatos sobre cães. E então lhe ocorre que seria melhor fazer o mesmo trabalho, mas só com gatos. Não tem problema, você pode automatizar a criação de relatórios de gatos com apenas um comando. Para fazer isso, você só precisa parametrizar seu documento de remarcação R.
Você pode fazer isso definindo parâmetros para o cabeçalho YAML no documento especificado e, em seguida, definindo os parâmetros de valor.
Agora você pode registrar todas as variáveis no código do documento como params$animal_name e params$years_of_study. Em seguida, usaremos o menu suspenso Knit (ou knit_with_parameters()) e poderemos selecionar os parâmetros.
revelarjs
reveladojs é um pacote que permite criar ótimas apresentações HTML com código R integrado, navegação intuitiva e menus de slides. Os atalhos HTML permitem criar rapidamente uma estrutura de slides aninhada com diferentes opções de estilo. Bem, o HTML pode ser executado em qualquer dispositivo, então a apresentação pode ser aberta em qualquer telefone, tablet ou laptop. A divulgação de informações pode ser configurada instalando o pacote e chamando-o no cabeçalho YAML. Aqui está um exemplo:
— título: “Exporando os limites do universo do People Analytics”
autor: "Keith McNulty"
saída:
revelarjs::revealjs_presentation:
centro: sim
modelo:starwars.html
tema: preto
data: “HR Analytics Meetup Londres – 18 de março de 2019”
arquivos_de recursos:
-darth.png
- estrela da morte.png
-hanchewy.png
- milênio.png
-r2d2-trêspio.png
-starwars.html
- guerra nas estrelas.png
—stormtrooper.png
-
A maioria dos programadores não aproveita ao máximo as tags HTML que o R Shiny possui. Mas são apenas 110 tags, que permitem criar uma breve chamada para uma função HTML ou reprodução de mídia. Por exemplo, recentemente usei tags$audio para reproduzir um som de “vitória” que alertava o usuário quando uma tarefa era concluída.
Pacote de elogios
Usar este pacote é muito simples, mas é necessário para elogiar o usuário. Parece estranho, mas eles realmente gostam.