10 recursos úteis do R que você talvez não conheça

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.

A Skillbox recomenda: curso prático "Desenvolvedor Python".

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:

dados <-read.csv(
interruptor (animal,
"cachorro" = "cachorro.csv",
"gato" = "catdata.csv",
"coelho" = "rabbitdata.csv")
)

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

brilhante::req(entrada$animal)

# botão de exibição

brilhante::actionButton("ir",
paste("Conduta", input$animal, "análise!")
)
})

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?”
)

dados,
})

Mais informações sobre todos esses recursos pode ser encontrado aqui.

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:

Sys.setenv(
DSN = "nome_banco_dados",
UID = "ID do usuário",
SENHA = "Senha"
)

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.

- título: “Análise Animal”
autor: "Keith McNulty"
data: "21 de março de 2019"
saída:
documento_html:
code_folding: "ocultar"
parâmetros:
nome_animal:
valor: Cachorro
escolhas:
- Cachorro
-Gato
- Coelho
anos_de_estudo:
entrada: controle deslizante
min: 2000
máx: 2019
passo 1
rodada: 1
setembro: "
valor: [2010, 2017] —

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.

10 recursos úteis do R que você talvez não conheça

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
-

Código fonte da apresentação postado aqui, e ela mesmarpubs.com/keithmcnulty/hr_meetup_london'>apresentação - aqui.

10 recursos úteis do R que você talvez não conheça

Tags HTML em R Shiny

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.

10 recursos úteis do R que você talvez não conheça

A Skillbox recomenda:

Fonte: habr.com

Adicionar um comentário