| 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 TRUElibrary(ggplot2)ggplot para crear la figura baseaesespecifica la estética de los ejes de datos, la forma, color y tamañogeomespecifica el tipo de gráfico, por ejemplo, point, line, density, boxgeomagrega también transformaciones estadísticas, por ejemplo. geom_smoothscale 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 TRUEall() 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.array,data.frame o list 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).