Menu
Coddy logo textTech

Hoja de Trucos de R

Última actualización

Hola Mundo y asignación

El operador de asignación idiomático de R es <- (el operador = también funciona).

OperaciónSintaxis
Imprimir un valorprint("Hello, World!")
Impresión automática (consola)"Hello, World!"
Concatenar e imprimircat("Hi", name, "\n")
Asignar (idiomático)x <- 5
Asignar (también válido)x = 5
Asignación a la derecha5 -> x
Comentario# this is a comment
Ejecutar un scriptRscript app.R

Tipos de datos y vectores

El vector es la estructura de datos fundamental de R; incluso un solo valor es un vector de longitud 1.

OperaciónSintaxis
Vector numéricov <- c(1, 2, 3)
Vector de caracteress <- c("a", "b")
Vector lógicob <- c(TRUE, FALSE)
Secuencia de enteros1:10
Secuencia con pasoseq(0, 1, by = 0.1)
Repetir valoresrep(0, times = 5)
Tipos básicosnumeric, character, logical, integer, complex
Comprobar / forzar el tipoclass(x), as.numeric("42")

Operaciones con vectores

Las operaciones son vectorizadas y se aplican elemento a elemento; la indexación es base 1.

OperaciónSintaxis
Acceder a un elemento (base 1)v[1]
Cortar un rangov[2:4]
Filtrado lógicov[v > 2]
Descartar un elementov[-1]
Matemática elemento a elementov * 2, v1 + v2
Longitudlength(v)
Reductores comunessum(v), mean(v), max(v)
Ordenar / invertirsort(v), rev(v)
Vector con nombresc(a = 1, b = 2)

Data frames

Un data frame es una tabla de columnas, cada una un vector de igual longitud.

OperaciónSintaxis
Crear un data framedf <- data.frame(name = c("Ada"), age = c(30))
Primeras / últimas filashead(df), tail(df)
Dimensionesnrow(df), ncol(df), dim(df)
Nombres de columnasnames(df), colnames(df)
Seleccionar una columnadf$age o df[["age"]]
Seleccionar filas / columnasdf[1, ], df[, "age"]
Filtrar filasdf[df$age > 18, ]
Añadir una columnadf$adult <- df$age >= 18
Estadísticas resumidassummary(df)
Vista general de la estructurastr(df)

Factores y listas

Los factores almacenan datos categóricos; las listas contienen elementos de tipos mixtos.

OperaciónSintaxis
Crear un factorf <- factor(c("low", "high"))
Niveles del factorlevels(f)
Factor ordenadofactor(x, ordered = TRUE)
Conteo por niveltable(f)
Crear una listal <- list(name = "Ada", scores = c(1, 2))
Acceder por nombrel$name o l[["name"]]
Acceder por posiciónl[[1]]
Sublista (mantiene la lista)l[1]
Longitud / nombreslength(l), names(l)

Control de flujo

Las condiciones van entre paréntesis y los bloques entre llaves.

OperaciónSintaxis
If / else if / elseif (x > 0) { ... } else if (x < 0) { ... } else { ... }
If-else vectorizadoifelse(v > 0, "pos", "neg")
Bucle forfor (i in 1:10) { ... }
For sobre un vectorfor (x in v) { ... }
Bucle whilewhile (x < 100) { ... }
Repeat con breakrepeat { if (done) break }
Switchswitch(key, a = 1, b = 2)
Operadores lógicos&&, ||, ! (escalar); &, | (vector)

Funciones

Las funciones son de primera clase; se devuelve la última expresión evaluada.

OperaciónSintaxis
Definir una funciónadd <- function(a, b) { a + b }
Retorno explícitoreturn(a + b)
Argumento por defectogreet <- function(name = "World") { ... }
Argumento variádicof <- function(...) { sum(...) }
Llamar por nombrebox(w = 2, h = 3)
Función anónimafunction(x) x * 2
Anónima (abreviada)\(x) x * 2
Pasar a una función de orden superiorsapply(1:3, function(x) x^2)

La familia apply

Aplica una función sobre los datos sin escribir bucles explícitos.

FunciónQué hace
apply(m, 1, sum)Aplica sobre las filas (1) o columnas (2) de una matriz
sapply(v, f)Aplica sobre un vector, simplifica a un vector/matriz
lapply(v, f)Aplica sobre un vector, siempre devuelve una lista
vapply(v, f, numeric(1))Como sapply pero con un tipo de retorno verificado
mapply(f, a, b)Aplica sobre varios vectores en paralelo
tapply(x, group, mean)Aplica una función por grupo
Map(f, a, b)Apply multivariado que devuelve una lista
Reduce(+, v)Pliega un vector con una función binaria

Funciones comunes de manipulación de datos y estadística

Funciones base de uso frecuente para resumir y reestructurar datos.

FunciónQué hace
mean(v) / median(v)Promedio / valor central
sd(v) / var(v)Desviación estándar / varianza
min(v) / max(v) / range(v)Mínimo / máximo / ambos
quantile(v)Cuantiles (p. ej. cuartiles)
table(x)Conteo de frecuencias de los valores
unique(v) / duplicated(v)Valores distintos / marcas de duplicados
is.na(v) / na.omit(df)Encontrar / descartar valores faltantes
aggregate(y ~ g, df, mean)Resume y por el grupo g
order(v)Orden de índices para ordenar
cor(x, y)Correlación entre dos vectores

La sintaxis de R que más usas, en una sola página. Esta hoja de trucos de R es una referencia rápida para el núcleo del lenguaje: asignación y tipos de datos, vectores y operaciones con vectores, data frames, factores y listas, control de flujo, funciones y la familia apply usada en todo el análisis de datos de rstats.

Todo lo que hay aquí es R base y se ejecuta en una instalación estándar, sin necesidad de paquetes adicionales. Copia lo que necesites o prueba cada fragmento en vivo en el playground de R, sin necesidad de configuración.

Preguntas frecuentes sobre la hoja de trucos de R

¿Esta hoja de trucos de R es gratis?
Sí. Esta hoja de trucos de R es completamente gratuita, sin necesidad de registrarse. Guárdala en favoritos y vuelve cuando necesites consultar una operación con vectores, un método de data frame o una función estadística.
¿Los vectores de R están realmente indexados desde 1?
Sí. A diferencia de la mayoría de los lenguajes de programación, la indexación en R empieza en 1, así que v[1] devuelve el primer elemento y v[length(v)] devuelve el último. Los índices negativos tienen un significado especial: v[-1] elimina el primer elemento en lugar de contar desde el final. Esta convención basada en 1 recorre por igual los vectores, las listas y los data frames.
¿Qué es un data frame en R?
Un data frame es el tipo de tabla de R: una colección de columnas donde cada columna es un vector de la misma longitud, y distintas columnas pueden contener tipos diferentes (números, texto, factores). Es la estructura estándar para los conjuntos de datos (las filas son observaciones y las columnas son variables) y lo indexas como df[rows, columns], seleccionas una columna con df$name y lo inspeccionas con str(df) o summary(df).
¿Puedo practicar R en línea?
Sí. Abre el playground de R para ejecutar cualquier fragmento de esta hoja de trucos en tu navegador, sin instalar R ni RStudio. Cuando quieras estructura, el curso interactivo y gratuito de R de Coddy te lleva paso a paso desde los vectores y los data frames hasta la familia apply y la estadística.
¿Esta hoja de trucos es buena para principiantes?
Sí. Está organizada desde los temas más comunes (asignación, vectores, data frames) hasta los avanzados (la familia apply y las funciones estadísticas), de modo que puedes usar las secciones de arriba desde el primer día e ir avanzando hacia el resto.
Coddy programming languages illustration

Aprende R con Coddy

COMENZAR