10 características útiles de R que quizás no conozcas

imagen

La R está llena de varias funciones. A continuación, daré diez de los más interesantes, que muchos podrían no conocer. El artículo apareció después de descubrir que mis historias sobre algunas de las características de R que utilizo en mi trabajo son aceptadas con entusiasmo por programadores familiares. Si ya lo sabe todo, le pido disculpas por el tiempo dedicado. Al mismo tiempo, si tienes algo que compartir, aconseja algo útil en los comentarios.

Skillbox recomienda: Tutorial para desarrolladores de Python .

Le recordamos: para todos los lectores de "Habr": un descuento de 10.000 rublos al registrarse en cualquier curso de Skillbox con el código de promoción "Habr".

Función de interruptor


Realmente, realmente me gusta switch (). De hecho, esta es una forma abreviada conveniente para la instrucción if al elegir un valor de acuerdo con el valor de otra variable. Encuentro esto especialmente útil cuando escribo código que debería cargar un conjunto de datos específico de acuerdo con una elección previa. Por ejemplo, si hay una variable llamada animal y necesita seleccionar un conjunto de datos específico dependiendo de si el animal es un perro, un gato o un conejo, escriba esto:

datos <- read.csv (
interruptor (animal,
"Dog" = "dogdata.csv",
"Cat" = "catdata.csv",
"Rabbit" = "rabbitdata.csv")
)

Esta característica será útil en aplicaciones Shiny donde necesita cargar varios conjuntos de datos o archivos de entorno dependiendo de uno o varios elementos del menú de entrada.

Atajos de teclado para RStudio


Este truco no es tanto para R como para RStudio IDE. Sin embargo, las teclas de acceso rápido siempre son muy convenientes, ya que le permiten ahorrar tiempo al ingresar texto. Mis favoritos son Ctrl + Shift + M para el operador%>% y Alt + para el operador <-.

Para ver todas las teclas de acceso rápido, solo presione Alt + Shift + K en RStudio.

Paquete Flexdashboard


Cuando necesite iniciar rápidamente el panel de control Shiny, no hay nada mejor que el paquete del tablero de instrumentos. Proporciona la capacidad de trabajar con accesos directos HTML, lo que a su vez facilita la creación de barras laterales, filas y columnas fácilmente y sin problemas. También existe la posibilidad de usar la barra de título, que le permite colocarla en diferentes páginas de la aplicación, dejar iconos, accesos directos en Github, direcciones de correo electrónico y mucho más.

El paquete le permite trabajar dentro del marco de Rmarkdown, de modo que puede colocar todas las aplicaciones en un archivo Rmd, en lugar de distribuirlas a diferentes servidores y archivos de la interfaz de usuario, como se hace, por ejemplo, con el uso de shinydashboard. Uso flexdashboard cuando necesito crear un prototipo de panel de control simple antes de comenzar a trabajar en algo complicado. Esta característica le permite crear un prototipo en una hora.

Req y validar funciones en R Shiny


El desarrollo en R Shiny puede confundirte, especialmente cuando constantemente recibes mensajes de error extraños que hacen imposible entender lo que está sucediendo. Pero con el tiempo, Shiny se desarrolla y mejora, aquí aparecen más y más funciones que le permiten comprender la causa del error. Entonces, req () resuelve el problema con un error "silencioso", cuando en general no está claro cuál es el problema. Con él, puede mostrar los elementos de la interfaz de usuario asociados con acciones anteriores. Vamos a ilustrar con un ejemplo:

output $ go_button <- shiny :: renderUI ({

# solo muestra el botón si se ha elegido una entrada de animal

shiny :: req (input $ animal)

# botón de visualización

shiny :: actionButton ("ir",
pegar ("Conducta", ingresar $ animal, "análisis!")
)
})

validate () comprueba todo antes de renderizar y le permite mostrar un mensaje de error; por ejemplo, que el usuario ha subido el archivo incorrecto:

# get csv input file

inFile <- input $ file1
data <- inFile $ datapath

# render table solo si son perros

shiny :: renderTable ({
# verifique que sea el archivo del perro, no gatos o conejos
brillante :: validar (
necesidad ("Nombre del perro"% en% colnames (datos)),
"No se encontró la columna Nombre del perro: ¿cargó el archivo correcto?"
)

datos
})

Puede encontrar más información sobre todas estas funciones aquí .

Almacenar sus credenciales en el entorno del sistema


Si planea compartir el código donde desea ingresar datos de acceso, use el entorno del sistema para evitar colocar sus propias credenciales en Github u otro servicio. Ejemplo de colocación:

Sys.setenv (
DSN = "nombre_base_datos",
UID = "ID de usuario",
PASS = "Contraseña"
)

Ahora puede iniciar sesión utilizando variables de entorno:

db <- DBI :: dbConnect (
drv = odbc :: odbc (),
dsn = Sys.getenv ("DSN"),
uid = Sys.getenv ("UID"),
pwd = Sys.getenv ("PASAR")
)

Es aún más conveniente (especialmente si usa datos con frecuencia) establecerlos como variables de entorno directamente en el sistema operativo. En este caso, siempre estarán disponibles y no tendrá que especificarlos en el código.

Automatización Tidyverse con styler


El paquete styler puede ayudar a limpiar el código, que tiene muchas características para convertir automáticamente el estilo del código a tidyverse. Todo lo que se necesita para esto es ejecutar styler :: style_file () para su script problemático. El paquete hará mucho (pero no todo) para restablecer el orden.

Parametrización de documentos R Markdown


Por lo tanto, ha creado un excelente documento de R Markdown en el que analiza varios hechos sobre los perros. Y luego se te ocurre que sería mejor hacer el mismo trabajo, pero solo con los gatos. Está bien, puede automatizar los informes de gatos con un solo comando. Para hacer esto, solo necesita parametrizar su documento de rebaja R.

Puede hacer esto estableciendo parámetros para el encabezado YAML en el documento especificado y luego valorando los parámetros.

- título: "Análisis animal"
autor: "Keith McNulty"
fecha: "21 de marzo de 2019"
salida:
html_document:
code_folding: "ocultar"
params:
nombre_ animal:
valor: perro
opciones:
- perro
- gato
- conejo
años_de_estudio:
entrada: control deslizante
min: 2000
max: 2019
paso: 1
ronda: 1
sep: ''
valor: [2010, 2017]
---

Ahora puede registrar todas las variables en el código del documento como params $ animal_name y params $ years_of_study. Luego usaremos el menú desplegable Tejer (o knit_with_parameters ()) y tendremos la oportunidad de seleccionar parámetros.



revelar


revelajs: un paquete que le permite crear excelentes presentaciones HTML con código R incorporado, navegación intuitiva y menús deslizantes. Los atajos de HTML le permiten crear rápidamente una estructura de diapositiva anidada con diferentes estilos. Bueno, HTML se ejecutará en cualquier dispositivo, por lo que la presentación se puede abrir en cualquier teléfono, tableta o computadora portátil. La divulgación de información se puede configurar instalando el paquete y llamándolo en el encabezado YAML. Aquí hay un ejemplo:

- título: "Explorando el borde del universo de People Analytics"
autor: "Keith McNulty"
salida:
revelarjs :: revelarjs_presentación:
centro: si
plantilla: starwars.html
tema: negro
fecha: "HR Analytics Meetup London - 18 de marzo de 2019"
recursos_archivos:
- darth.png
- deathstar.png
- hanchewy.png
- milenio.png
- r2d2-threepio.png
- starwars.html
- starwars.png
- stormtrooper.png
---

El código fuente para la presentación está aquí , y la presentación <a href=foreign rpubs.com/keithmcnulty/hr_meetup_london'> está aquí.



Etiquetas HTML en R Shiny


La mayoría de los programadores no aprovechan al máximo las etiquetas HTML que tiene R Shiny. Pero estas son solo 110 etiquetas que permiten crear una llamada corta para una función HTML o reproducción de medios. Por ejemplo, recientemente usé las etiquetas $ audio para reproducir un sonido "ganador", que advirtió al usuario sobre la finalización de una tarea.

Paquete de alabanza


Usar este paquete es muy simple, pero lo necesita para mostrar elogios al usuario. Parece extraño, pero realmente les gusta.



Skillbox recomienda:

Source: https://habr.com/ru/post/449508/


All Articles