Referencia
Última actualización: 2025-10-21 | Mejora esta página
Referencia
Introducción a R y RStudio
- Usa la tecla escape para cancelar comandos incompletos o código en ejecución (Ctrl+C) si estas usando R desde el shell.
- Las operaciones aritméticas básicas siguen el orden estándar de
precedencia:
- Paréntesis:
(,) - Exponentes:
^or** - División:
/ - Multiplicación:
* - Suma:
+ - Resta:
-
- Paréntesis:
- La notación científica está disponible, por ejemplo:
2e-3 - Cualquier cosa a la derecha de
#es un comentario, R lo ignorará! - Las funciones se denotan por
function_name(). Las expresiones dentro de los paréntesis se evaluan antes de pasarse a la función, y las funciones se pueden anidar. - Funciones matemáticas:
exp,sin,log,log10,log2etc. - Operadores de comparación:
<,<=,>,>=,==,!= - Usa
all.equalpara comparar valores numéricos! -
<-es el operador de asignación. Cualquier expresión a la derecha del operador es evaluada, luego se almacena en la variable nombrada a la izquierda. -
lslista todas las variables y funciones que has creado -
rmpuede utilizarse para borrarlas - Al asignar valores a los argumentos de la función, debes usar
=.
Manejo de proyectos con RStudio
- Para crear un nuevo proyecto, ve a File -> New Project
- Instala el paquete
packratpara crear proyectos independientes -
install.packagespara instalar paquetes desde CRAN -
librarypara cargar un paquete en R -
packrat::statuspara verificar si se han instalado todos los paquetes a los que se hace referencia en tus scripts.
Buscando ayuda
- Para acceder a la ayuda de una función
?function_nameohelp(function_name) - Usa comillas para operadores especiales, por ejemplo:
?"+" - Utiliza la búsqueda ambigua si no puedes recordar un nombre
??search_term - CRAN task views son un buen punto de partida.
-
Stack Overflow es un buen
lugar para obtener ayuda con tu código.
-
?dputGuardará datos que estás trabajando, para que otros puedan cargarlos fácilmente. -
sessionInfo()te dará detalles de tu configuración.
-
Estructuras de datos
Los valores atómicos en R deben ser de alguno de los 5 tipos de datos, múltiples valores se pueden agrupar en estructuras de datos.
Tipos de datos
typeof(object)proporciona información sobre el tipo de dato de un objeto.-
Existen 5 tipos de datos principales:
-
?numericnúmeros reales(decimal) -
?integersólo números enteros -
?charactertexto -
?complexnúmeros complejos -
?logicalvalores TRUE o FALSE
Tipos especiales:
-
?NAvalores faltantes -
?NaN“no es número” para valores indefinidos (por ejemplo,0/0). -
?Inf,-Infinfinito. -
?NULLuna estructura de datos que no existe
NApuede ocurrir en cualquier vector atómico.NaN, andInfsólo pueden aparecer en vectores de tipo complex, integer o numeric. Los vectores atómicos son los bloques de construcción para todas las demás estructuras de datos. Un valorNULLocurrirá en una estructura de datos entera (pero puede ocurrir como lista de elementos). -
Estructuras de datos básicas en R:
-
?vectoratómico (sólo puede contener un tipo de dato) -
?list(contenedores para otros objetos) -
?data.frameobjetos bidimensionales cuyas columnas pueden contener diferentes tipos de datos -
?matrixobjeto bidimensional que puede contener sólo un tipo de dato. -
?factorvectores que contienen datos categóricos predefinidos. -
?arrayobjeto multi-dimensional que puede contener sólo un tipo de dato.
Recuerda que las matrices son realmente vectores atómicos, y que los data.frames son realmente listas(esto explica algunos de los comportamientos extraños de R).
-
?vector()Todos los elementos del vector deben ser del mismo tipo. - Los elementos se pueden convertir de un tipo a otro utilizando coerción.
- La función concatenar ‘c()’ agrega elementos al vector.
-
seq(from=0, to=1, by=1)crea una secuencia de números. - Los elementos de un vector se pueden nombrar usando la función
names().
-
?factor()Los factores son una estructura de datos diseñada para almacenar datos categóricos. -
levels()muestra los valores válidos que se pueden almacenar en un vector de tipo factor.
-
?list()Las listas son una estructura de datos diseñada para almacenar datos de diferente tipos.
-
?matrix()Las matrices son una estructura de datos diseñada para almacenar datos bidimensionales.
-
?data.framees una estructura de datos clave. Es unalistadevectores. -
cbind()agregará una columna (vector) a un data.frame. -
rbind()agregará un renglón (list) a un data.frame.
Funciones útiles para consultar estructuras de datos:
-
?strestructura, imprime un resumen de toda la estructura de datos -
?typeofte dice el tipo dentro de un vector atómico -
?classIndica cual es la estructura de datos -
?headImprime los primerosnelementos (filas para objetos bidimensionales) -
?tailimprime los últimosnelementos (filas para objetos bidimensionales) -
?rownames,?colnames,?dimnamesrecupera o modifica los nombres de fila y columna de un objeto. -
?namesrecupera o modifica los nombres de un vector o lista atómica (o columnas de un dataframe). -
?lengthobtiene el número de elementos de un vector atómico -
?nrow,?ncol,?dimobtiene las dimensiones de un objeto n-dimensional (No funcionará en vectores o listas atómicas).
Explorando Dataframes
-
read.csvpara leer datos en una estructura regular-
separgumento para especificar el separador- “,” para valores separados por coma
- “\t” para valores separados por tabulador
- Otros argumentos:
-
header=TRUEsi hay una fila de encabezado
-
-
Subconjunto de datos
-
Se puede acceder a los elementos por:
- Indice
- Nombre
- Vectores lógicos
-
[corchetes:- extrae elementos individuales o subset de vectores
- por ejemplo,
x[1]extrae el primer elemento del vector x. -
extrae elementos individuales de una lista. El valor
devuelto será otra
list(). - extrae columnas de un data.frame.
-
[con dos argumentos para:-
extrae filas y/o columnas de
- matrices
- data.frames
- por ejemplo:
x[1,2]extraerá el valor de la fila 1, columna 2. - por ejemplo:
x[2,:]extraerá toda la segunda fila.
-
extrae filas y/o columnas de
[[dobles corchetes para extraer elementos de las listas.$para acceder a columnas o listar elementos por nombreíndices negativos omiten elementos
Control de flujo
- Usa la condición
ifpara iniciar una instrucción condicional,else ifpara proporcionar pruebas adicionales, yelsepara proporcionar un valor predeterminado. - Las instrucciones que se encuentran entre las llaves de las declaraciones condicionales deben estar indentadas.
- Usa
==para probar la igualdad. -
X && Ysólo es cierto si tanto X como Y sonTRUE. -
X || Yes cierto si ya sea X o Y, o ambos, sonTRUE. - Cero se considera
FALSE; todos los demás números se consideranTRUE - Anidar loops para operar en datos multidimensionales.
Creación de gráficos con calidad para publicación
- las figuras se pueden crear con la gramática de los gráficos:
library(ggplot2)-
ggplotpara crear la figura base -
aesespecifica la estética de los ejes de datos, la forma, color y tamaño -
geomespecifica el tipo de gráfico, por ejemplo,point,line,density,box -
geomagrega también transformaciones estadísticas, por ejemplo.geom_smooth -
scalefunciones que controla la relación entre los valores de los datos y los valores visuales o estéticos -
facetfunciones para estratificar la figura en paneles -
aesLas características estéticas se aplican a capas individuales, o se pueden establecer para todo el gráfico dentro deggplot. -
themecambia el aspecto general del gráfico - ¡El orden de las capas importa!
-
ggsavesalva una figura.
Vectorización
- La mayoría de las funciones y operaciones se aplican a cada elemento de un vector
-
*la multiplicación de elemento a elemento -
%*%para una verdadera multiplicación de matrices -
any()regresaráTRUEsi cualquier elemento de un vector esTRUE -
all()regresaráTRUEsi todos los elementos de un vector sonTRUE
Funciones
?"function"- Coloque el código cuyos parámetros cambian frecuentemente en una función, luego llámelo con diferentes valores de parámetros para personalizar su comportamiento.
- Se devuelve la última línea de una función, o puede usar
returnexplícitamente - Cualquier código escrito en el cuerpo de la función buscará preferiblemente variables definidas dentro de la función
- Documente ¿por qué?, luego ¿qué?, y finalmente ¿cómo? (si el código no se explica por sí mismo)
Escribiendo datos
-
write.tablepara escribir objetos en formato regular - asigna
quote = FALSEpara que el texto no sea envuelto entre comillas"
Split-apply-combine
- Use la familia de funciones
xxplypara aplicar funciones a grupos dentro de algunos datos. - la primera letra,
array,data.frame olist corresponde a los datos de entrada - la segunda letra denota la estructura de datos de salida
- Las funciones anónimas (aquellas que no tienen un nombre asignado)
se usan dentro de la familia de funciones
plyren grupos dentro de los datos.
Manejo de dataframe con dplyr
library(dplyr)-
?selectextrae variables por nombre. -
?filterregresa filas que coincidan con las condiciones. -
?group_byagrupa datos por una de muchas variables. -
?summarizeresume valores múltiples a un solo valor. -
?mutateagrega nuevas variables a un data.frame. - Combina operaciones usando el operador pipe
?"%>%".
Manejo de dataframe con tidyr
library(tidyr)- ‘?gather’ convierte datos del formato ancho al largo.
- ‘?spread’ convierte datos del formato largo al ancho.
- ‘?separate’ separa un único valor en múltiples valores.
- ‘?unite’ fusionar valores múltiples en un solo valor.
Generando reportes con knitr
- Valor de informes reproducibles
- Conceptos básicos de Markdown
- fragmentos de código R
- Opciones de fragmentos
- Código R en línea
- Otros formatos de salida
Buenas prácticas para escribir un buen código
- Programa defensivamente, es decir, asume que van a surgir errores y escribe el código para detectarlos cuando surjan.
- Escriba pruebas antes de escribir el código para ayudar a determinar exactamente qué se supone que debe hacer ese código.
- Conoce que se supone hace el código, antes de tratar de corregirlo.
- Haz que falle cada vez.
- Haz que falle rápido.
- Cambia una cosa a la vez, y por una razón.
- Ten un registro de lo que has hecho.
- Se humilde.
Glosario
- argument
- Un valor dado a una función o programa cuando se ejecuta. El término a menudo se usa indistintamente (y de manera inconsistente) con parámetro.
- assign
- Para darle a un valor un nombre asociandolo a una variable.
- body
- (de una función): las instrucciones que se ejecutan cuando se ejecuta una función.
- comment
-
Una observación en un programa que pretende ayudar a los lectores
humanos a comprender lo que está sucediendo, pero es ignorado por la
computadora. Los comentarios en Python, R y el shell de Unix comienzan
con un caracter
#y se ejecutan hasta el final de la linea; los comentarios en SQL comienzan con--, y otros idiomas tienen otras convenciones. - comma-separated values
- (CSV) Una representación textual común para tablas en el cual los valores en cada fila están separados por comas.
- delimiter
- Un caracter or caracteres usados para separar valores individuales, tales como las comas entre columnas en un archivo CSV.
- documentation
- Texto en lenguaje humano escrito para explicar lo que hace el software cómo funciona, o cómo usarlo.
- floating-point number
- Un número que contiene una parte fraccionaria y un exponente. Ver también: integer.
- for loop
- Un ciclo que se ejecuta una vez para cada valor en algún tipo de conjunto, lista o rango. Ver también: while loop.
- index
- Un subíndice que especifica la ubicación de un único valor en una colección, como un solo píxel en una imagen.
- integer
- Un número entero, como -12343. Ver también: floating-point number.
- library
- En R, es el directorio(s) donde los paquetes son almacenados.
- package
- Una colección de funciones R, datos y código compilado en un formato bien definido. Los paquetes se almacenan en una biblioteca y se cargan usando la función de library().
- parameter
- Nombre de variable en la declaración de la función que se usa para guardar un valor cuando la función es llamada. El término a menudo se usa indistintamente (y de manera inconsistente) con argumento.
- return statement
- Una declaración que hace que una función deje de ejecutarse y devuelva un valor en donde fue llamada.
- sequence
- Una colección de información que se presenta en un orden específico.
- shape
-
Las dimensiones de una matriz, representadas como un vector. Por
ejemplo, una forma de matriz de 5 × 3 es
(5,3). - string
- Abreviatura de “cadena de caracteres”, una secuencia de cero o más caracteres.
- syntax error
- Un error de programación que ocurre cuando las instrucciones están en un orden o contienen caracteres no esperados por el lenguaje de programación.
- type
- La clasificación de algo en un programa (por ejemplo, el contenido de una variable) como un tipo de número (por ejemplo floating-point, integer), string, o algo más. En R el comando typeof() se usa para consultar el tipo de una variable.
- while loop
- Un bucle que se ejecuta siempre que una condición dada sea verdadera. Ver también: for loop.