Glosario de funciones de R

Autor/a

1 Operadores y funciones básicas de R

1.1 Operadores

Suponemos aquí que x representa un valor numérico o un vector numérico

operador Propósito Tipo Ejemplo
+ Suma numérico x + y
- Resta numérico x - y
* producto numérico x * y
/ división numérico x / y
^ potencia numérico x^2

Suponemos aquí que x e y representan dos valores o dos vectores numéricos

operador Propósito Tipo Ejemplo
== igual lógico x == y
!= distinto lógico x !- y
< menor lógico x < y
<= menor o igual lógico x <= y
> mayor lógico x > y
>= mayor o igual lógico x >= y
Cuidado con no poner un espacio intercalado en los operadores que se componen de dos signos. Deben ir juntos.

Suponemos aquí que s1 e s2 representan dos sentencias o valores lógicos

operador Propósito Tipo Ejemplo
& AND (elemento a elemento) lógico s1 & s2
| OR (elemento a elemento) lógico s1 | s2
! NOT (negación) lógico !s1

A continuación se muestra la tabla ordenada de los operadores en R, desde mayor a menor precedencia.

Orden Operadores Descripción
1 () Paréntesis: control explícito de la evaluación
2 :: Acceso a funciones dentro de paquetes
3 $ [ Acceso a listas, data frames y objetos S4
4 ^ Potenciación (asociatividad derecha-izquierda)
5 -x Operadores unarios
6 * / Multiplicación y división
7 + - Suma y resta
8 < > <= >= == != Comparaciones
9 : Secuencias
10 ! Negación lógica
11 & Conjunción lógica (AND)
12 | Disyunción lógica (OR)
13 <- -> = Asignación

1.2 Funciones numéricas básicas

Suponemos aquí que x representa un valor numérico o un vector numérico

Función Propósito Tipo Ejemplo
abs() Valor absoluto numérico abs(x)
round() Redondeo numérico round(x,3)
sqrt() Raíz cuadrada numérico sqrt(x)
log() logaritmo natural numérico log(x)
log10() logaritmo base 10 numérico log10(x)
exp() exponencial numérico exp(x)

1.3 Funciones para explorar un data.frame

Para un objeto de tipo data.frame llamado datos:

Función Propósito Tipo Ejemplo
dim() número de filas y columnas vector dim(datos)
nrow() número de filas numérico nrow(datos)
ncol() número de columnas numérico ncol(datos)
Función Propósito Tipo Ejemplo
names()
colnames()
nombres de las columnas vector names(datos)
colnames(datos)
rownames() nombres de filas vector rownames(datos)

Para un objeto de tipo data.frame llamado datos:

Función Propósito Ejemplo
class() Clase del objeto class(datos)
str() Muestra la estructura interna del data.frame str(datos)
attributes() Lista todos los atributos del objeto attributes(datos)

Para un objeto de tipo data.frame llamado datos:

Función Propósito Tipo Ejemplo
head() primeras filas data.frame head(datos)
tail() últimas filas data.frame tail(datos)
View() abre el visor de datos de RStudio View(datos)

Para un objeto de tipo data.frame llamado datos:

Función Propósito Tipo Ejemplo
anyNA() ¿Hay algún NA en el data.frame lógico anyNA(datos)
is.na() Consulta, devuelve verdadero/falso si el argumento es NA vector lógico is.na(c(1,2,NA,4))
colSums(is.na()) Número de NA por columnas vector colSums(is.na(datos))

2 Manejo de factores

Función Propósito Tipo Ejemplo
Creación
factor() Crear un factor a partir de un vector x factor factor(x)
ordered() Crear un factor ordenado factor ordered(f, levels = c("Leve","Moderado","Intenso"))
Función Propósito Tipo Ejemplo
levels() Mostrar los niveles del factor vector levels(f)
levels<- Asignar o modificar los niveles del factor vector levels(f) <- c("Hombre","Mujer")
Función Propósito Tipo Ejemplo
table() Obtener frecuencias absolutas tabla table(f)
summary() Resumen descriptivo del factor tabla summary(f)
Función Propósito Tipo Ejemplo
as.factor() Convertir un objeto en factor factor as.factor(x)
as.character() Convertir un factor a texto carácter as.character(f)
as.numeric() Convertir un factor a números (códigos internos) numérico as.numeric(f)

3 Funciones para manejo de archivos

Función Objetivo Comentarios Ejemplo
read.table() Leer datos en formato texto en forma general Muy flexible; necesita especificar separador\(^{*}\), encabezados, decimales, etc. datos <- read.table("datos.txt", header = TRUE, sep = ",")
read.csv() Leer ficheros CSV con punto como separador decimal Equivalente a read.table(..., sep = ",", dec = ".", header = TRUE) datos <- read.csv("datos.csv")
read.csv2() Leer CSV “europeos” con coma decimal Usa sep = ";" y dec = ",". Útil para ficheros de Excel guardados como CSV en español. datos <- read.csv2("datos_comas.csv")
read.delim() Leer ficheros de texto delimitados por tabulador Equivalente a read.table(..., sep = "\t", header = TRUE) datos <- read.delim("datos_tab.txt")
read.delim2() Leer ficheros con tabulador y coma decimal Versión “europea” de read.delim(): sep = "\t", dec = "," datos <- read.delim2("datos_tab_eu.txt")

\(^{*}\) Para usar como separador el tabulador, indicar sep="\t"

Función Objetivo Comentarios Ejemplo
readRDS() Leer un objeto R guardado en formato RDS Recupera un único objeto (no carga al workspace completo) datos <- readRDS("datos.rds")
load() Cargar uno o varios objetos desde un .RData Restaura los objetos exactamente como se guardaron load("proyecto.RData")
Función Objetivo Comentarios Ejemplo
write.table() Guardar data.frames en archivos de texto Muy flexible; conviene usar row.names = FALSE para no añadir una columna extra con los nombres de fila. Permite elegir separador y decimal. write.table(datos, "salida.txt", sep = ",", dec = ".", row.names = FALSE)
write.csv() Guardar data.frames en formato CSV (punto decimal) Equivale a write.table(..., sep = ",", dec = ".", row.names = FALSE). Formato muy usado para compartir datos. write.csv(datos, "salida.csv", row.names = FALSE)
write.csv2() Guardar data.frames en formato CSV con coma decimal Usa sep = ";" y dec = ",". Útil en entorno “europeo” (configuraciones regionales en español). write.csv2(datos, "salida_eu.csv", row.names = FALSE)
Función Objetivo Comentarios Ejemplo
saveRDS() Guardar un único objeto en formato RDS Guarda un objeto (por ejemplo un data.frame) en un archivo binario. Al leerlo con readRDS() puedes darle el nombre que quieras. saveRDS(datos, "datos.rds")
save() Guardar uno o varios objetos en un archivo .RData Permite guardar varios objetos a la vez (data.frames, modelos, listas…). Al cargar con load() se recuperan con el mismo nombre original. save(datos, otra_tabla, file = "proyecto.RData")

4 Funciones para métodos descriptivos

4.1 Diagramas de frecuencias

Para un objeto de tipo data.frame llamado datos con las variables aludidas:

Función Propósito Tipo Ejemplo
hist() Histograma de una variable numérica gráfico hist(datos$edad)
barplot() Diagrama de barras a partir de frecuencias gráfico barplot(table(datos$sexo))
plot() Gráfico genérico que puede producir diagramas de dispersión o diagramas de frecuencias simples gráfico plot(datos$colesterol)
boxplot() Diagrama de cajas para distribución y valores atípicos gráfico boxplot(datos$trigliceridos)
pie() Gráfico circular gráfico pie(table(datos$grupo))
density() (solo cálculo) Calcula la densidad para luego graficarla objeto densidad plot(density(datos$edad))

En general, las funciones gráficas soportan alguno o todos los argumentos que se indican a continuación:

Argumento Propósito Ejemplo
main Título principal del gráfico main = "Histograma de HDL"
sub Subtítulo del gráfico sub = "Datos del estudio"
xlab Etiqueta del eje X xlab = "HDL (mg/dL)"
ylab Etiqueta del eje Y ylab = "Frecuencia"
cex.main Tamaño del título principal cex.main = 1.2
cex.lab Tamaño de las etiquetas de los ejes cex.lab = 1.1
cex.axis Tamaño de los valores en los ejes cex.axis = 0.9
Argumento Propósito Ejemplo
col Color de las barras o elementos gráficos\(^{*}\) col = "lightblue"
border Color del borde de las barras border = "white"

\(^{*}\) La función colors() proporciona un listado de nombres válidos de color.
Escribiendo demo("colors") se pueden ver las paletas en la ventana gráfica.

Argumento Propósito Ejemplo
xlim Rango del eje X (mínimo y máximo) xlim = c(20, 120)
ylim Rango del eje Y ylim = c(0, 50)
freq Frecuencia absoluta (TRUE) o densidad (FALSE) freq = FALSE
breaks Número o posiciones de los cortes del histograma breaks = 20
las Orientación del texto de los ejes las = 1
Argumento Propósito Ejemplo
lwd Grosor de líneas lwd = 2
lty Tipo de línea lty = 2

4.2 Medidas descriptivas

Para un objeto de tipo data.frame llamado datos:

Función Propósito Tipo Ejemplo
table() frecuencias absolutas tabla table(datos$sexo)
prop.table() frecuencias relativas (proporciones). Debe tener como argumento anidado a la función table() tabla prop.table(table(datos$sexo))

Manejo de valores faltantes (NA)

En table() incluir el argumento useNA = "ifany" para que incluya la frecuencia de valores faltantes en la tabla.
Por ejemplo: table(datos$sexo, useNA="ifany")

Función Propósito Tipo Ejemplo
mean() media aritmética numérico mean(datos$edad)
median() mediana (percentil 50) numérico median(datos$edad)
min() valor mínimo numérico min(datos$edad)
max() valor máximo numérico max(datos$edad)
quantile() cuantiles (incluye cuartiles) numérico/vector quantile(datos$edad)
summary() resumen mixto: min, Q1, mediana, media, Q3, max mixto summary(datos$trigliceridos)

Manejo de valores faltantes (NA)

Incluir el argumento na.rm=TRUE.
Por ejemplo: mean(datos$edad, na.rm=TRUE)

Función Propósito Tipo Ejemplo
range() mínimo y máximo (proporciona los dos valores, no la diferencia max-min) vector numérico range(datos$edad)
sd() desviación estándar numérico sd(datos$colesterol)
var() varianza numérico var(datos$colesterol)
IQR() rango intercuartílico (Q3 - Q1) numérico IQR(datos$edad)

Manejo de valores faltantes (NA)

Incluir el argumento na.rm=TRUE.
Por ejemplo: sd(datos$edad, na.rm=TRUE)

5 Análisis de la normalidad

  • En el código siguiente x es un vector numérico
Método gráfico Qué evalúa Perfil bajo la normalidad Código en R base
Histograma Forma global de la distribución (simetría, unimodalidad). Histograma aproximadamente simétrico, con forma de campana. hist(x,<br>col = "lightgray",<br>border = "white")
Histograma + curva normal Ajuste visual entre los datos y una normal teórica con misma media y sd. La curva normal se superpone razonablemente al histograma. hist(x, prob = TRUE)<br>curve(dnorm(x,<br>mean(x),<br>sd(x)),<br>add = TRUE)
Curva de densidad (KDE) Estimación suavizada de la densidad empírica. Curva aproximadamente simétrica y unimodal. plot(density(x))
Densidad empírica vs normal Comparación directa entre densidad observada y normal teórica. Ambas curvas tienen forma y centro similares. plot(density(x))<br>curve(dnorm(x, mean(x), sd(x)), add = TRUE)
Q–Q plot normal Comparación de cuantiles observados vs cuantiles normales teóricos. Los puntos siguen aproximadamente una recta. qqnorm(x)<br>qqline(x)
Boxplot Simetría, dispersión y presencia de valores extremos. Mediana centrada y bigotes de longitud similar. boxplot(x, horizontal = TRUE)
  • En todos los test, la hipótesis nula es que los datos siguen una distribución normal.

  • x es el vector numérico cuya normalidad se desea contrastar

  • Funciones del lenguaje base de R

Nombre del test Características fundamentales Código en R
Shapiro–Wilk Test estándar de normalidad en R base. Muy potente para muestras pequeñas (n < 50). Hipótesis nula: los datos siguen una distribución normal. shapiro.test(x)
Kolmogorov–Smirnov Compara la distribución empírica con una normal teórica.
No recomendado cuando la media y la desviación se estiman de los datos.
ks.test(x, "pnorm", mean(x), sd(x))
  • Funciones del Paquete nortest (disponible en CRAN)

library(nortest)

Nombre del test Características fundamentales Código en R (x es un vector)
Lilliefors Versión corregida del test de Kolmogorov–Smirnov. Adecuado cuando μ y σ son desconocidos. lillie.test(x)
Anderson–Darling Da mayor peso a las colas de la distribución. Muy sensible a desviaciones de la normalidad. Alternativa sólida al Shapiro–Wilk. ad.test(x)
Cramér–von Mises Evalúa discrepancias globales entre la distribución empírica y la normal teórica. Uso más académico que clínico. cvm.test(x)