Guía Estilo R

Los estándares para el estilo en el código no son lo mismo que la sintaxis del lenguaje, aunque están estrechamente relacionados. Es importante adoptar un buen estilo para maximizar la legibilidad de nuestro código para que su mantenimiento sea más fácil tanto para nosotros como otros programadores.

En este curso, hemos adoptado la Guía Estilo de Hadley Wickham que incluye en su libro Advanced R y que está basada en la Guía Estilo R de Google. A continuación se muestra un resumen de sus sugerencias:

Nombres de Archivos

En los nombres de los archivos debemos usar nombres descriptivos, no tienen que incluir caracteres especiales (tildes, eñes) y asegurarse que su extensión es ".R"

# Bien
regresion_lineal.R
lectura_datos.R

# Mal
regresión_lineal.R
versiondellunes.R

Nombres de los Objetos

"Hay únicamente dos problemas realmente duros en informática; el primero es la invalidación de cachés, y el segundo darles nombres apropiados a > lascosas"

David Wheeler

Los nombres de los objetos y funciones deben ser en minúscula y hemos de separar con guión bajo (_) aquellos nombres compuestos de varias palabras. Wickham recomienda usar sustantivos para los nombres de los objetos y verbos para las funciones. Debemos elegir nombres concisos y descriptivos para nuestros objetos (tarea nada fácil). Para la comunidad hispanohablante recomendamos no utilizar tildes y eñes en los nombres de los objetos.

# Bien
primer_cuartil
cuartil_1

# Mal
CuartilUno
C1
está_en_el_primer_cuartil

Espacios

Antes y después de todos los operadores infijos (=, +, <-, etc) hay que colocar un espacio. No hay que dejar espacios después de una coma, pero una coma siempre es seguida de un espacio.

# Bien
hipotenusa <- sqrt( a ^ 2 + b ^ 2)
v <- c(1, 2, 3)
hipotenusa <- sqrt(a^2 + b^2)
v <- c(1, 2, 3)

La excepción a esta regla es cuando usamos el operador de secuencia :

# Bien
vector <- 1:10

# Mal
vector <- 1 : 10

Antes del paréntesis izquierdo va un espacio, a no ser que estemos llamando a una función.

# Bien
if (1 > 2) "mayor" else "menor"
mean(1:10)

# Mal
if(1 > 2) "mayor" else "menor"
mean (1:10)

Punto y coma

Se recomienda no usar punto y coma en nuestras expresiones.

# Bien
x <- 1
y <- 2
z <- 3

# Mal
x <- 1; y <- 2; z <- 3

Llaves

Abrir una llave nunca debería ocurrir en su propia línea y siempre se sigue con una línea nueva. La llave que cierra siempre tiene que ir su propia línea, a menos que se trate de else. Siempre usaremos llaves aunque el cuerpo de la estructura de control contenga sólo una instrucción.

Dentro de las llaves utilizaremos sangrado para indicar que se trata de un bloque de instrucciones.

# Bien
if (1 < 2) {
  "mayor"
  } else {
  "menor"
}

if (x == 0) {
  "cero"
}

# Mal 
if (1 < 2) 
{
"mayor"
} 
else {
"menor"
}

if (x == 0) 
"cero"

Longitud de Líneas

La longitud de nuestras líneas debe tener como máximo 80 caracteres. Si usamos RStudio podemos activarlo en:

Tools -> Global Options -> Code -> Display

seleccionando la casilla

[] Show margin Margin column [80]

nos aparecerá una guía en el editor indicando el límite hasta donde podemos escribir nuestra línea.

Longitud linea en RStudio
Figura1 - Longitud linea en RStudio

Sangría

Respecto a la sangría en nuestro código se sugiere usar dos espacios para añadir sangría a nuestro código y nunca la tecla TAB. En el caso que usemos RStudio podemos configurar la tecla TAB para que utilice dos espacios en:

Tools -> Global Options -> Code -> Editing

Tabulador en RStudio
Figura2 - Tabulador en RStudio

Asignación

En la instrucción de asignación se aconseja el uso del operador <- en lugar de =, reservando este último para declarar argumentos dentro de las funciones.

# Bien
x <- 2

# Mal
x = 2

Comentarios

Recomendamos documentar el código mediante el uso de comentarios. Cada linea debe comenzar con el signo almohadilla (#) seguido de un espacio en blanco. Los comentarios deben explicar el porqué, y no el qué.

Para separa y estructurar el código en bloques es común el uso de más de una almohadilla #. RStudio ofrece las características de Code Folding y Sections que nos permite mostrar y ocultar bloques de código permitiendo una navegación más fácil en nuestros archivos.

Code folding & Sections en RStudio
Figura3 - Code folding & Sections en RStudio

Resumen

  • Creamos nuevos objetos con el operador de asignación <-.
  • Podemos conocer el tipo de un objeto con la función typeof().
  • Todos los objetos pertenecen a una clase.
  • Mediante la función class() hallaremos la clase a la que pertenece un objeto.
  • Alternativamente, podemos comprobar la clase de un objeto mediante la función is, o mediante una de sus variantes específicas.
  • Podemos cambiar la clase de un objeto mediante la función as, o una de sus variantes específicas.
  • R proporciona valores especiales para el \infty y -\infty, NaN (not-a-number) y NA (valores desconocidos).

results matching ""

    No results matching ""