Introducción a R y RStudio |
|
Gestión de proyectos con RStudio |
|
Buscando ayuda |
|
Estructuras de datos |
|
Explorando data frames |
|
Haciendo subconjuntos de datos |
|
Control de flujo |
|
Creando gráficas con calidad para publicación con ggplot2 |
|
Vectorización |
|
Funciones |
|
Guardando datos |
|
División y combinación de data frames con plyr |
|
Manipulación de data frames con dplyr |
|
Manipulación de data frames usando tidyr |
|
Produciendo informes con knitr |
|
Escribiendo buen software |
|
(
, )
^
or **
/
*
+
-
2e-3
#
es un comentario, R lo ignorará!function_name()
. Las expresiones dentro de los paréntesis se evaluan antes de pasarse a la función, y las funciones se pueden anidar.exp
, sin
, log
, log10
, log2
etc.<
, <=
, >
, >=
, ==
, !=
all.equal
para 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.ls
lista todas las variables y funciones que has creadorm
puede utilizarse para borrarlas=
.packrat
para crear proyectos independientesinstall.packages
para instalar paquetes desde CRANlibrary
para cargar un paquete en Rpackrat::status
para verificar si se han instalado todos los paquetes a los que se hace referencia en tus scripts.?function_name
o help(function_name)
?"+"
??search_term
?dput
Guardará datos que estás trabajando, para que otros puedan cargarlos fácilmente.sessionInfo()
te dará detalles de tu configuración.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.?numeric
números reales(decimal)?integer
sólo números enteros?character
texto?complex
números complejos?logical
valores TRUE o FALSETipos especiales:
?NA
valores faltantes?NaN
“no es número” para valores indefinidos (por ejemplo, 0/0
).?Inf
, -Inf
infinito.?NULL
una estructura de datos que no existeNA
puede ocurrir en cualquier vector atómico. NaN
, and Inf
só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 valor NULL
ocurrirá en una estructura de datos entera (pero puede ocurrir como lista de elementos).
Estructuras de datos básicas en R:
?vector
atómico (sólo puede contener un tipo de dato)?list
(contenedores para otros objetos)?data.frame
objetos bidimensionales cuyas columnas pueden contener diferentes tipos de datos?matrix
objeto bidimensional que puede contener sólo un tipo de dato.?factor
vectores que contienen datos categóricos predefinidos.?array
objeto 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.seq(from=0, to=1, by=1)
crea una secuencia de números.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.frame
es una estructura de datos clave. Es una lista
de vectores
.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:
?str
estructura, imprime un resumen de toda la estructura de datos?typeof
te dice el tipo dentro de un vector atómico?class
Indica cual es la estructura de datos?head
Imprime los primeros n
elementos (filas para objetos bidimensionales)?tail
imprime los últimos n
elementos (filas para objetos bidimensionales)?rownames
, ?colnames
, ?dimnames
recupera o modifica los nombres de fila y columna de un objeto.?names
recupera o modifica los nombres de un vector o lista atómica (o columnas de un dataframe).?length
obtiene el número de elementos de un vector atómico?nrow
, ?ncol
, ?dim
obtiene las dimensiones de un objeto n-dimensional
(No funcionará en vectores o listas atómicas).read.csv
para leer datos en una estructura regular
sep
argumento para especificar el separador
header=TRUE
si hay una fila de encabezado[
corchetes:
x[1]
extrae el primer elemento del vector x.list()
.[
con dos argumentos para:
x[1,2]
extraerá el valor de la fila 1, columna 2.x[2,:]
extraerá toda la segunda fila.[[
dobles corchetes para extraer elementos de las listas.$
para acceder a columnas o listar elementos por nombreif
para iniciar una instrucción condicional, else if
para proporcionar pruebas adicionales, y else
para proporcionar un valor predeterminado.==
para probar la igualdad.X && Y
sólo es cierto si tanto X como Y son TRUE
.X || Y
es cierto si ya sea X o Y, o ambos, son TRUE
.FALSE
; todos los demás números se consideran TRUE
library(ggplot2)
ggplot
para crear la figura baseaes
especifica la estética de los ejes de datos, la forma, color y tamañogeom
especifica el tipo de gráfico, por ejemplo, point
, line
, density
, box
geom
agrega también transformaciones estadísticas, por ejemplo. geom_smooth
scale
funciones que controla la relación entre los valores de los datos y los valores visuales o estéticosfacet
funciones para estratificar la figura en panelesaes
Las características estéticas se aplican a capas individuales, o se pueden establecer para todo el gráfico dentro de ggplot
.theme
cambia el aspecto general del gráficoggsave
salva una figura.*
la multiplicación de elemento a elemento%*%
para una verdadera multiplicación de matricesany()
regresará TRUE
si cualquier elemento de un vector es TRUE
all()
regresará TRUE
si todos los elementos de un vector son TRUE
?"function"
return
explícitamentewrite.table
para escribir objetos en formato regularquote = FALSE
para que el texto no sea envuelto entre comillas ` “`xxply
para aplicar funciones a grupos dentro de algunos datos.a
rray,d
ata.frame o l
ist corresponde a los datos de entradaplyr
en grupos dentro de los datos.library(dplyr)
?select
extrae variables por nombre.?filter
regresa filas que coincidan con las condiciones.?group_by
agrupa datos por una de muchas variables.?summarize
resume valores múltiples a un solo valor.?mutate
agrega nuevas variables a un data.frame.?"%>%"
.library(tidyr)
#
y se ejecutan hasta el final de la linea;
los comentarios en SQL comienzan con --
,
y otros idiomas tienen otras convenciones.(5,3)
.