Está en la página 1de 2

Importar Datos: : GUÍA RÁPIDA

El tidyverse de R se basa en datos ordenados


(tidy data) almacenados en tibbles, que son
Leer datos tabulares - Estas funciones comparten estos argumentos: Tipos de datos
data frames mejorados. read_*(file, col_names = TRUE, col_types = NULL, locale = default_locale(), na = c("", "NA"), Las funciones de readr interpretan los tipos
El frente de esta hoja muestra quoted_na = TRUE, comment = "", trim_ws = TRUE, skip = 0, n_max = Inf, guess_max = min(1000, de cada columna y convierten los tipos cuando
n_max), progress = interactive()) corresponde (pero NO convertirá cadenas en
cómo leer archivos de texto en R
factores automáticamente).
con readr.
A B C Archivo separado por comas Un mensaje muestra el tipo de cada columna en el
El reverso muestra cómo crear a,b,c 1 2 3 read_csv("archivo.csv") resultado.
tibbles con tibble y diseñar datos 1,2,3 4 5 NA Para generar archivo .csv ejecuta:
ordenados con tidyr. 4,5,NA write_file(x = "a,b,c\n1,2,3\n4,5,NA", path = "archivo.csv") ## Con especificación de columnas:
## cols(
OTROS TIPOS DE DATOS A B C Archivo separado por punto y coma ## age = col_integer(), age es
a;b;c un entero
Prueba uno de los siguientes paquetes para 1 2 3 read_csv2("archivo2.csv") ## sex = col_character(),
importar otros tipos de archivos 1;2;3 4 5 NA write_file(x = "a;b;c\n1;2;3\n4;5;NA", path = " archivo 2.csv") ## earn = col_double()
• haven – archivos SPSS, Stata y SAS 4;5;NA ## )
Archivo con cualquier separador sex es
• readxl – archivos excel (.xls y .xlsx) un caracter
• DBI – base de datos A B C read_delim("archivo.txt", delim = "|") earn es un decimal
a|b|c 1 2 3 write_file(x = "a|b|c\n1|2|3\n4|5|NA", path = "archivo.txt") (numerico)
• jsonlite - json 1|2|3 4 5 NA
• xml2 - XML 4|5|NA Archivos de ancho fijo 1. Usa problems() para diagnosticar problemas.
• httr - Web APIs read_fwf("archivo.fwf", col_positions = c(1, 3, 5)) x <- read_csv("archivo.csv"); problems(x)
• rvest - HTML (Web Scraping) A B C write_file(x = "a b c\n1 2 3\n4 5 NA", path = "archivo.fwf")
abc 1 2 3
123 2. Usa una col_ function para guiar el parseado.
4 5 NA Archivo separado por tabulaciones
Guardar datos 4 5 NA read_tsv("archivo.tsv") también con read_table().
write_file(x = "a\tb\tc\n1\t2\t3\n4\t5\tNA", path = "archivo.tsv")
• col_guess() - el valor por defecto
• col_character()
Guardar x, un objeto de R, a path, una ruta de • col_double(), col_euro_double()
acceso a un archivo, como: • col_datetime(format = "") También
ARGUMENTOS ÚTILES
Archivo separado por comas col_date(format = ""), col_time(format = "")
write_csv(xpath, na = "NA", append = FALSE, Archivo de ejemplo 1 2 3 Saltar líneas • col_factor(levels, ordered = FALSE)
col_names = !append) a,b,c
write_file("a,b,c\n1,2,3\n4,5,NA", read_csv(f, skip = 1)
1,2,3 4 5 NA • col_integer()
"archivo.csv")
Archivo con separador arbitrario 4,5,NA • col_logical()
write_delim(x path, delim = " ", na = "NA", f <- "archivo.csv"
• col_number(), col_numeric()
append = FALSE, col_names = !append) A B C • col_skip()
A BLeer un subconjunto
C
1 2 3 Sin encabezado
CSV para excel read_csv(f, col_names = FALSE) 1 2 3 read_csv(f, n_max = 1) x <- read_csv("archivo.csv", col_types = cols(
4 5 NA
write_excel_csv(x path, na = "NA", append = A = col_double(),
FALSE, col_names = !append) x y z B = col_logical(),
Proporcionar el encabezado
Cadena (string) a archivo
A B C
read_csv(f, col_names = c("x", "y", "z")) A B C Valores faltantes C = col_factor()))
1 2 3 NA 2 3 read_csv(f, na = c("1", "."))
write_file(x path, append = FALSE)
4 5 NA 4 5 NA 3. Sino, leé como vectores de caracteres y luego
Vector de cadena a archivo, un elemento por parsea con una parse_ function.
línea • parse_guess()
write_lines(x,path, na = "NA", append = FALSE) Leer datos no tabulares • parse_character()
Objecto a archivo RDS Leer un archivo en una sola cadena Leer un archivo en un vector • parse_datetime() También parse_date() y
write_rds(x, path, compress = c("none", "gz", parse_time()
read_file(file, locale = default_locale()) read_file_raw(file) • parse_double()
"bz2", "xz"), ...)
Lee cada línea en una cadena Lee cada línea en un vector • parse_factor()
Archivo separado por tabulaciones • parse_integer()
read_lines(file, skip = 0, n_max = -1L, na = character(), read_lines_raw(file, skip = 0, n_max = -1L,
write_tsv(x, path, na = "NA", append = FALSE, • parse_logical()
col_names = !append) locale = default_locale(), progress = interactive()) progress = interactive())
• parse_number()
Lee ficheros de log estilo Apache
read_log(file, col_names = FALSE, col_types = NULL, skip = 0, n_max = -1, progress = interactive()) x$A <- parse_number(x$A)
RStudio® es una marca registrada de RStudio, Inc. • CC BY SA RStudio • info@rstudio.com • 844-448-1212 • rstudio.com • Aprende más en tidyverse.org • readr 1.1.0 • tibble 1.2.12 • tidyr 0.6.0 • Updated: 2019–08
Tibbles - un data frame mejorado Tidy Data con tidyr Separar Celdas
El paquete tibble proporciona una Tidy data es una forma de organizar datos tabulares. Proporciona una estructura de datos consistente
nueva clase S3 para almacenar datos entre paquetes Usa estas funciones para
tabulares, el tibble. Tibbles hereda la dividir o combinar celdas
clase data frame, pero mejora tres Una tabla es tidy si: Tidy data: en valores individuales
comportamientos: A * B -> C
A B C A B C A B C A * B aislados.
C
• Creación de subconjuntos - [ siempre retorna
un nuevo tibble, [[ y $ siempre retornan un
vector.
• Sin coincidencias parciales- se deben utilizar
& separate(data, col, into, sep = "[^[:alnum:]]+",
remove = TRUE, convert = FALSE,
los nombres completos de las columnas al crear Cada variable es Cada observación Facilita el acceso a Preserva los casos extra = "warn", fill = "warn", ...)
subconjuntos una columna o caso es una fila las variables como durante las operaciones
• Impresión en la consola – Cuando imprimes un vectores. vectorizadas. Separa cada celda en una columna para hacer
tibble, R proporciona varias columnas.
una vista concisa de
los datos que se
# A tibble: 234 × 6
manufacturer
<chr>
model
<chr>
displ
<dbl>
Remoldear Datos – cambiar la forma de los valores en una tabla table3
1 audi a4 1.8
Usa gather() y spread() para reorganizar los valores de una tabla en una nueva forma. pais anio tasa pais anio casos pob
ajustan a una 2 audi a4 1.8
3 audi a4 2.0 A 1999 0.7K/19M A 1999 0.7K 19M
pantalla 4 audi a4 2.0
5
6
audi
audi
a4
a4
2.8
2.8
gather(data, key, value, ..., na.rm = FALSE, spread(data, key, value, fill = NA, convert = FALSE, A 2000 2K/20M A 2000 2K 20M
B 1999 37K/172M B 1999 37K 172M
7
8
Audi a4
audi a4 quattro
3.1
1.8 convert = FALSE, factor_key = FALSE) drop = TRUE, sep = NULL) B 2000 80K/174M B 2000 80K 174M
9 audi a4 quattro 1.8
10 audi a4 quattro
# ... with 224 more rows, and 3
2.0 gather() mueve los nombres de las columnas a spread() mueve los valores únicos de una columna C 1999 212K/1T C 1999 212K 1T
C 2000 213K/1T C 2000 213K 1T
# more variables: year <int>,
# cyl <int>, trans <chr>
una columna key , reuniendo los valores de la key como nombres de columnas, esparciendo los
Vista tibble columna en una sola columna value. valores de una columna value a través de las
separate(table3, tasa, sep = "/",
nuevas columnas.
156 1999 6 auto(l4)
157 1999 6 auto(l4) table4a table2
into = c("casos", "pob"))
158 2008 6 auto(l4)
159 2008 8 auto(s4) pais anio tipo cuenta
pais 1999 2000 pais anio casos pais anio casos pob
160 1999 4 manual(m5)
161 1999 4 auto(l4)
162 2008 4 manual(m5)
A 0.7K 2K A 1999 0.7K A 1999 cases 0.7K A 1999 0.7K 19M separate_rows(data, ..., sep =
163 2008 4 manual(m5)
164 2008 4 auto(l4)
B 37K 80K B 1999 37K A 1999 pop 19M A 2000 2K 20M "[^[:alnum:].]+", convert = FALSE)
165 2008 4 auto(l4) C 212K 213K C 1999 212K A 2000 cases 2K B 1999 37K 172M
166 1999 4 auto(l4)
A 2000 2K A 2000 pop 20M B 2000 80K 174M Separa cada celda en una columna para formar
[ reached getOption("max.print") --
Una tabla larga omitted 68 rows ] B 2000 80K B 1999 cases 37K C 1999 212K 1T varias filas.
para visualizar Vista data frame C 2000 213K B 1999 pop 172M C 2000 213K 1T
table3
• Controla la apariencia por defecto con las key value B 2000 cases 80K
B 2000 pop 174M pais anio tasa pais anio tasa
opciones: A 1999 0.7K/19M A 1999 0.7K
C 1999 cases 212K
options(tibble.print_max = n, C 1999 pop 1T A 2000 2K/20M A 1999 19M
B 1999 37K/172M A 2000 2K
tibble.print_min = m, tibble.width = Inf) C 2000 cases 213K
B 2000 80K/174M A 2000 20M
C 2000 pop 1T
• Ver el conjunto de datos completo con View() o key value
C 1999 212K/1T B 1999 37K
glimpse() gather(table4a, `1999`, `2000`, C 2000 213K/1T B 1999 172M
• Convierte a data frame con as.data.frame() key = "anio", value = "casos") spread(table2, tipo, cuenta) B 2000 80K
B 2000 174M

CONSTRUYE UN TIBBLE DE DOS MANERAS Manejar Valores Perdidos C


C
1999
1999
212K
1T

tibble(…)
drop_na(data, ...) fill(data, ..., .direction = c("down", "up")) replace_na(data, C 2000 213K
Ambos Completa los NA’s en las columnas
Construir por columnas. crean este Elimina las filas que replace = list(), ...)
C 2000 1T
contienen NA’s en las especificadas (…) con el valor no-NA más
tibble(x = 1:3, y = c("a", "b", "c")) tibble columnas especificadas (…) cercano. Reemplaza NA’s por columna. separate_rows(table3, tasa, sep = "/")
x x x
tribble(…) x1 x2 x1 x2 x1 x2 x1 x2 x1 x2 x1 x2 unite(data, col, ..., sep = "_", remove =
A tibble: 3 × 2
Construir por filas. x y
A
B
1
NA
A
D
1
3
A
B
1
NA
A
B
1
1
A
B
1
NA
A
B
1
2
TRUE)
tribble( ~x, ~y, <int> <chr> C NA C NA C 1 C NA C 2 Une múltiples columnas en una única
1, "a", 1 1 a D 3 D 3 D 3 D 3 D 3 columna
2 2 b E NA E NA E 3 E NA E 2
2, "b", 3 3 c table5
3, "c") drop_na(x, x2) fill(x, x2) replace_na(x, list(x2 = 2)) pais siglo anio pais anio
Afghan 19 99 Afghan 1999
as_tibble(x, …) Convierte un data frame a un
tibble. Expandir tablas – crea rápidamente tablas con combinaciones de valores Afghan
Brazil
20
19
00
99
Afghan
Brazil
2000
1999
enframe(x, name = "name", value = "value") complete(data, ..., fill = list()) Brazil 20 00 Brazil 2000
Convierte un vector con nombre en un tibble expand(data, ...) China 19 99 China 1999
Completa los datos con combinaciones faltantes de las Crea un nuevo tibble con todas las combinaciones China 20 00 China 2000
is_tibble(x) Comprueba si x es un tibble. variables listadas en … usando los valores de fill o NA’s. posibles de los valores de las variables listadas en …
unite(table5, siglo, anio,
complete(mtcars, cyl, gear, carb) expand(mtcars, cyl, gear, carb) col = "anio", sep = "")
RStudio® es una marca registrada de RStudio, Inc. • CC BY SA RStudio • info@rstudio.com • 844-448-1212 • rstudio.com • Aprende más en tidyverse.org • readr 1.1.0 • tibble 1.2.12 • tidyr 0.6.0 • Updated: 2019–08

También podría gustarte