library(learnr) knitr::opts_chunk$set(echo = FALSE)
knitr::include_graphics( "https://storage.googleapis.com/datos_cursos/ixpantia_introR/ixpantia_logo.png" )
Hay muchas formas de escribir código en R. Entre mas código escribes, y sobretodo entre mas código tienes que leer, más apreciarás un estilo uniforme. Te permitirá leer tu propio código y volver a entenderlo más fácilmente después de un largo tiempo sin haberlo visto. Además, un estilo uniforme te permitirá trabajar más efectivamente con otros.
Aquí podrás encontrar los diferentes elementos que pueden estar en un guía de estilo. Esta basado en el guía de estilo de Hadley Wickham. Este a su vez esta basado en el guía de estilo de Google. Además, se incluyen las sugerencias que son relevantes para hispanohablantes. Esto porque en el Castellano estamos acostumbrados, entre otras cosas, a tildes, eñes y otros caracteres que necesitan su propia discusión.
Los archivos deben tener un nombre descriptivo, no tener caracteres especiales (tildes, eñes) y terminar en .R.
question("¿Cuál (es) de estos nombres de archivos es (son) correcto (s)?", answer("analisis.R"), answer("caracterización.R"), answer("analisis_factorial.R", correct = TRUE), answer("análisis_confirmatorio.R"), answer("eda.R", correct = TRUE), correct = "Correcto", incorrect = "Incorrecto" )
Si tu solución o estudio requiere que los archivos se corran en una secuencia predeterminada, añade prefijos con numerales.
question("¿Cuál (es) de estos nombres de archivos es (son) correcto (s)?", answer("primer_script.R"), answer("1_analisis_exploratorio.R", correct = TRUE), answer("dos-modelo-predictivo.R"), correct = "Correcto", incorrect = "Incorrecto" )
Nombres de variables y de funciones deben ser en minúscula y que se ha de usar un guión bajo (_) para separar palabras dentro de un nombre. Usar sustantivos para los nombres de las variables y verbos para las funciones. Nunca uses caracteres especiales como tildes y eñes en tus nombres de objetos.
question("¿Cuál (es) de estos nombres de objetos es (son) correcto (s)?", answer("primer_cuartil", correct = TRUE), answer("CuartilUno"), answer("C1"), answer("cuartil_1", correct = TRUE), correct = "Correcto", incorrect = "Incorrecto" )
Si usas nombres de funciones que ya están en uso es probable que generes confusión. Trata de evitarlo hasta donde sea posible.
question("¿Cuál (es) de estos nombres de funciones es (son) correcto (s)?", answer("F <- function(x) read.table(x)"), answer("lee_tabla <- function(x) read.table(x)", correct = TRUE), answer("ls <- function(x) read.table(x)"), correct = "Correcto", incorrect = "Incorrecto" )
Antes y después de todos los operadores infijos va un espacio (=, +, <-, etc). Esto aplica aún para el signo equivalente (=) en las llamada de una función. No hay espacios antes de una coma, pero una coma siempre es seguida por un espacio.
question("¿Cuál (es) de estos comandos es (son) correcto (s)?", answer("profundidad<-round((pies + pulgadas/12), 2)"), answer("profundidad<-round((pies+pulgadas/12), 2)"), answer("profundidad <- round((pies+pulgadas/12), 2)"), answer("profundidad <- round((pies + pulgadas / 12), 2)", correct = TRUE), correct = "Correcto", incorrect = "Incorrecto" )
No se usan espacios para :
, ::
ni :::
.
question("¿Cuál (es) de estos comandos es (son) correcto (s)?", answer("x <- 2:23", correct = TRUE), answer("base::round", correct = TRUE), answer("y <- 10 : 54"), answer("dplyr :: select()"), correct = "Correcto", incorrect = "Incorrecto" )
Antes del paréntesis izquierdo va un espacio, a no ser que estés llamando una función en cual caso no se usa un espacio.
question("¿Cuál (es) de estos comandos es (son) correcto (s)?", answer("qplot(x, y)", correct = TRUE), answer("plot (x, y)"), answer("if (debug) do(x)", correct = TRUE), answer("if(condicion)function(x)"), correct = "Correcto", incorrect = "Incorrecto" )
Cuando quieras introducir mas orden en el código alineándolo, por ejemplo, sobre los símbolos de igualdad, está bien usar espacios para tal efecto
Los paréntesis y corchetes ([])
no llevan espacios a su alrededor. Si hay una
coma, aplican las convenciones que se mencionaron antes.
question("¿Cuál (es) de estos comandos es (son) correcto (s)?", answer("if ( depurando ) x <- 34"), answer("if (depurando) x <- 34", correct = TRUE), answer("resultados[1,]"), answer("resultados[1 ,]"), answer("resultados[5, 1]", correct = TRUE), correct = "Correcto", incorrect = "Incorrecto" )
No uses punto y coma dentro del código. No es necesario, y prácticamente ya no se usa.
Abrir una llave nunca debería ocurrir en su propia línea y siempre se sigue con
una línea nueva. Una llave que cierra siempre debe ir en su propia línea a
menos que sea else
. Siempre usa llaves cuando estás usando construcciones con
if
, aún cuando no es posible no hacerlo.
Trata de limitar tu código a una longitud de 80 caracteres por linea. Esto cabe cómodamente en una página impresa a un tamaño de la fuente razonable.
Es mejor usar solo <-
para asignación en vez de =
y usar el símbolo de
igualdad solamente para argumentos dentro de funciones.
question("¿Cuál (es) de estos comandos es (son) correcto (s)?", answer("y <- 23", correct = TRUE) , answer("y = 23"), correct = "Correcto", incorrect = "Incorrecto" )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.