Funciones incorporadas en R
Casi todo en R se hace mediante funciones. Aquí sólo me refiero a las funciones numéricas y de caracteres que se utilizan habitualmente para crear o recodificar variables.
(Para practicar el trabajo con funciones, haz el Curso Intermedio de R).
Funciones numéricas
Función | Descripción |
abs(x) | valor absoluto |
sqrt(x) | raíz cuadrada |
techo(x) | techo(3.475) es 4 |
suelo(x) | suelo(3,475) es 3 |
trunc(x) | trunc(5.99) es 5 |
redonda(x , dígitos= n) | round(3,475, dígitos=2) es 3,48 |
signif(x , dígitos= n) | signif(3,475, dígitos=2) es 3,5 |
cos(x), sen(x), tan(x) | also acos(x), cosh(x), acosh(x), etc. |
log(x) | logaritmo natural |
log10(x) | logaritmo común |
exp(x) | e^x |
Funciones de carácter
Función | Descripción |
substr(x , start= n1 , stop= n2) | Extraer o sustituir subcadenas en un vector de caracteres. x <- "abcdef" substr(x, 2, 4) es "bcd" substr(x, 2, 4) <- "22222" es "a222ef" |
grep(pattern , x , ignore.case= FALSE , fixed= FALSE ) | Busca un patrón en x. Si fixed =FALSE, el patrón es una expresión regular. Si fixed=TRUE, el patrón es una cadena de texto. Devuelve los índices coincidentes. grep("A", c("b", "A", "c"), fixed=TRUE) devuelve 2 |
sub(patrón , sustitución , x , ignorar.caso = FALSE , fijo= FALSE ) | Busca un patrón en x y sustitúyelo por el texto de sustitución. Si fixed=FALSE, el patrón es una expresión regular. Si fixed = T, el patrón es una cadena de texto. sub("\s",".", "Hola.Ahí") devuelve "Hola.Ahí" |
strsplit(x , split) | Dividir los elementos del vector de caracteres x en split.strsplit("abc", "") devuelve un vector de 3 elementos "a", "b", "c" |
pegar(..., sep="") | Concatena cadenas después de utilizar la cadena sep para separarlas.paste("x",1:3,sep="") devuelve c("x1", "x2" "x3")paste("x",1:3,sep="M") devuelve c("xM1", "xM2" "xM3")paste("Hoy es", date()) |
toupper(x) | Mayúsculas |
tolower(x) | Minúsculas |
Funciones estadísticas de probabilidad
La siguiente tabla describe las funciones relacionadas con las distribuciones de probailidad. Para los generadores de números aleatorios que aparecen a continuación, puedes utilizar set.seed(1234) o algún otro número entero para crear números pseudoaleatorios reproducibles.
Función | Descripción |
dnorma(x) | función de densidad normal (por defecto m=0 sd=1)# trazar curva normal estándarx <- pretty(c(-3,3), 30)y <- dnorm(x) plot(x, y, type='l', xlab="Desviación normal", ylab="Densidad", yaxs="i") |
pnorm(q) | la probabilidad normal acumulada para q(área bajo la curva normal a la izquierda de q)pnorm(1,96) es 0,975 |
qnorm(p) | cuantil normal. valor en el percentil p de la distribución normalqnorm(.9) es 1,28 # percentil 90 |
rnorma(nm=0, sd=1) | n desviaciones normales aleatorias con media mand desviación típica sd. #50 variantes normales aleatorias con media=50, sd=10x <- rnorm(50, m=50, sd=10) |
dbinom(x, tamaño, prob)pbinom(x, tamaño, prob)qbinom(p, tamaño, prob)rbinom(n, tamaño, prob) | distribución binomial donde tamaño es el tamaño de la muestray probabilidad es la probabilidad de que salga cara (pi)# probabilidad de 0 a 5 caras de una moneda de 10 lanzamientosdbinom(0:5, 10, .5)# probabilidad de 5 o menos caras de una moneda de 10 lanzamientospbinom(5, 10, .5) |
dpois(x,lamda)ppois(x,lamda)qpois(x,lamda)rpois(x,lamda) | distribución poisson con m=std=lamda#probabilidad de 0,1 ó 2 sucesos con lamda=4dpois(0:2, 4)#probabilidad de al menos 3 sucesos con lamda=41- ppois(2,4) |
dunif(xmin=0, max=1)punif(xmin=0, max=1)qunif(xmin=0, max=1)runif(xmin=0, max=1) | distribución uniforme, sigue el mismo patrón que la distribución normal anterior.#10 variantes aleatorias uniformes x <- runif(10) |
Otras funciones estadísticas
En la tabla siguiente se indican otras funciones estadísticas útiles. Cada uno tiene la opción na.rm para eliminar los valores perdidos antes de los cálculos. De lo contrario, la presencia de valores omitidos dará lugar a un resultado omitido. El objeto puede ser un vector numérico o un marco de datos.
Función | Descripción |
media(x ,recorte=0,na.rm= FALSE ) | media del objeto x# media recortada, eliminando los valores que falten y# el 5% de las puntuaciones más alta y más bajamx <- media(x,trim=.05,na.rm=TRUE) |
sd(x) | desviación típica del objeto(x). mira también var(x) para la varianza y mad(x) para la desviación absoluta media. |
mediana(x) | mediana |
cuantil(x , probs) | cuantiles donde x es el vector numérico cuyos cuantiles se desean y probs es un vector numérico con probabilidades en [0,1].# percentiles 30 y 84 de xy <- cuantil(x, c(.3,.84)) |
range(x) | gama |
sum(x) | suma |
dif(x , lag= 1) | diferencias retardadas, con lag indicando qué retardo utilizar |
min(x) | mínimo |
max(x) | máximo |
scale(x , center= TRUE , scale= TRUE ) | centrar columnas o normalizar una matriz. |
Otras funciones útiles
Función | Descripción |
seq(de , hasta , en) | genera una secuenciaíndices <- seq(1,10,2)#índices es c(1, 3, 5, 7, 9) |
rep(x , nveces) | repite x n vecesy <- rep(1:3, 2)# y es c(1, 2, 3, 1, 2, 3) |
cortar(x , n) | dividir variable continua en factor con n nivelesy <- cut(x, 5) |
Ten en cuenta que, aunque los ejemplos de esta página aplican funciones a variables individuales, muchas pueden aplicarse también a vectores y matrices.