Está en la página 1de 2

Domar Datos Datos Ordenados - La base para domar datos en R

con dplyr and tidyr En un


conjunto de
F MA F MA
Datos ordenados complementan las M * A F

Hoja de Referencia datos


ordenado: & operaciones vectorizadas de R.
Automticamente R preserva observaciones
mientras manipulas las variables. No hay otro
Cada variable se tiene Cada observacin
formato que funciona tan intuitivamente en R. M * A
su propia columna tiene su propia fila

Syntaxis - Convenciones tiles para la doma Remodelar Datos - Cambia el esquema de los datos
dplyr::tbl_df(iris) dplyr::data_frame(a = 1:3, b = 4:6)
Convierte datos a una tbl. Objetos tbl son mas fciles de
inspeccionar que data frames. Ro solo muestra los datos w
ww
w w
w
ww
w
w
Combina vectores en un data
frame (optimizado).
que caben en la pantalla: w
Aw
1005 1005
A
1013
A dplyr::arrange(mtcars, mpg)
1013
A
1010
A 1010
A
1010
A Ordena filas por valores de una
Source: local data frame [150 x 5]

Sepal.Length Sepal.Width Petal.Length Reune columnas en filas. 1010


tidyr::gather(cases, "year", "n", 2:4)
A tidyr::spread(pollution, size, amount)
Extiende filas en columnas.
columna (bajo a alto).
dplyr::arrange(mtcars, desc(mpg))
1 5.1 3.5 1.4
2 4.9 3.0 1.4 Ordena filas por valores de una
3 4.7 3.2 1.3
columna (alto a bajo).
4
5
4.6
5.0
3.1
3.6
1.5
1.4
w
110
110
1007 w
wp110wp
110
1007 w
110
110
1007 w
wp 110
45wp
110
1007
1009
45
dplyr::rename(tb, y = year)
.. ... ... ...
Variables not shown: Petal.Width (dbl),
Species (fctr)
45
1009
45 45
1009
45
tidyr::separate(storms, date, c("a", "m", "d"))
Separa una columna en varias.
45
1009
45
tidyr::unite(data, col, ..., sep)
Une varias columnas en una.
Cambia el nombre de columnas de
un data frame.

dplyr::glimpse(iris)
Resumen con mucha informacin sobre los datos tbl.
Subconjuntos de Observaciones Subconjuntos de Variables
utils::View(iris)
Observa el conjunto de datos en lo que parece una hoja
de clculo (nota la V capital). w
110w
110w
110ww wwww
110
110 wp110
110
1007
1007pw
dplyr::filter(iris, Sepal.Length > 7)
Extrae filas que cumplen criterios lgicos.
1009
45
100945
dplyr::select(iris, Sepal.Width, Petal.Length, Species)
Selecciona columnas por nombre o funciones de ayuda.
dplyr::distinct(iris)
Remueve filas duplicadas. Funciones de ayuda para for select - ?select
dplyr::sample_frac(iris, 0.5, replace = TRUE) select(iris, contains("."))
Selecciona una fraccin de filas al azar. Selecciona columnas cuyos nombres contienen una cadena de caracteres.
select(iris, ends_with("Length"))
dplyr::sample_n(iris, 10, replace = TRUE)
Selecciona columnas cuyos nombres terminan con una cadena de caracteres.
Selecciona n filas al azar. select(iris, everything())
dplyr::%>% dplyr::slice(iris, 10:15) Selecciona todas las columnas.
Pasa el objeto a la izquierda al primer argumento (o Selecciona filas por posicin. select(iris, matches(".t."))
argumento . ) de la funcin a la derecha creando un tubo. dplyr::top_n(storms, 2, date)
Selecciona columnas cuyo nombre cumple con una expresin regular.
select(iris, num_range("x", 1:5))

x %>% f(y) es lo mismo que f(x, y)


Selecciona y ordena las n entradas mas altas (por grupo si los Selecciona columna con nombres x1, x2, x3, x4, x5.
datos estan agrupados). select(iris, one_of(c("Species", "Genus")))
y %>% f(x, ., z) es lo mismo que f(x, y, z ) Selecciona columnas cuyos nombres estn en un grupo de nombres.
Lgica in R - ?Comparison, ?base::Logic select(iris, starts_with("Sepal"))
El uso de tubos y tuberias (en Ingles: Piping) con %>% < Menor de != No equivale a Selecciona columnas cuyos nombres comienzan con una cadena de caracteres.
resulta en cdigo mas legible. Por ejemplo: > Mayor a %in% Membrecia de grupo select(iris, Sepal.Length:Petal.Width)
== is.na Selecciona todas las columnas entre Sepal.Length and Petal.Width (incluyente).
iris %>% equivale a Es NA
group_by(Species) %>% select(iris, -Species)
<= Menos o equivalente a !is.na No es NA
summarise(avg = mean(Sepal.Width)) %>% Selecciona todas las columnas ecepto Species.
arrange(avg) >= Mayor o equivalente a &,|,!,xor,any,all Operadores Booleanos
RStudio es un marca registrada de RStudio, Inc. CC BY RStudio info@rstudio.com 844-448-1212 rstudio.com devtools::install_github("rstudio/EDAWR") para sets de datos Lee mas con browseVignettes(package = c("dplyr", "tidyr")) dplyr 0.4.0 tidyr 0.2.0 Actualizado: 1/15
Traducido por Frans van Dunn innovateonline.nl
Resumir Datos Crea Nuevas Variables Combina Conjuntos de Datos
a b
x1 x2 x1 x3

+ =
A 1 A T
B 2 B F
C 3 D T
dplyr::summarise(iris, avg = mean(Sepal.Length)) dplyr::mutate(iris, sepal = Sepal.Length + Sepal. Width)
Uniones mutantes
Resume datos a una sola fila de valores. Calcula y aade una o mas columnas nuevas.
dplyr::left_join(a, b, by = "x1")
x1 x2 x3
dplyr::summarise_each(iris, funs(mean)) dplyr::mutate_each(iris, funs(min_rank)) A 1 T

Applica la funcin summary a cada columna. Aplica una funcin de ventana a cada columna.
B
C
2
3
F
NA Une filas coincidentes de b a a.
dplyr::count(iris, Species, wt = Sepal.Length) dplyr::transmute(iris, sepal = Sepal.Length + Sepal. Width) x1 x3 x2
dplyr::right_join(a, b, by = "x1")
A T 1
Cuenta el numero de valores nicos para cada variable Calcula una o mas columnas nuevas, borra columnas B F 2 Une filas coincidentes de a a b.
D T NA
(con o sin ponderacin). originales.
x1 x2 x3 dplyr::inner_join(a, b, by = "x1")
A 1 T
funcin de Funcin de B 2 F Une datos. Reten solo filas en ambos.
resumen ventana x1
A
x2
1
x3
T
dplyr::full_join(a, b, by = "x1")
Summarise usa funciones de resumen, funciones que Mutate usa funciones de ventana, funciones que toman un B
C
2
3
F
NA
Une datos. Reten todos los valores, todas
toman un vector de valores y devuelven un solo valor como: vector de valores y devuelven otro vector de valores como: D NA T las files.
dplyr::lead Uniones con filtros
dplyr::first min dplyr::cumall
Copia con valores adelantados por dplyr::semi_join(a, b, by = "x1")
Primer valor de un vector. Valor minimo en un vector. 1. all cumulativo
x1
A
x2
1
dplyr::last max B 2 Todas las filas con coincidencia en b.
dplyr::lag dplyr::cumany
Ultimo valor de un vector. Valor mximo en un vector. Copia con valores atrasados por 1. any cumulativo x1 x2 dplyr::anti_join(a, b, by = "x1")
C 3
dplyr::nth mean dplyr::dense_rank dplyr::cummean Todas las filas sin coincidencia en b.
N-avo valor de un vector. Valor promedio de un vector. Rangos sin brechas. mean cumulativo y z
dplyr::n median dplyr::min_rank cumsum x1 x2 x1 x2
# de valores en u vector. Valore mediano en un vector. Rangos. Empates reciben rango min. sum cumulativo
+ =
A 1 B 2
C 3
dplyr::n_distinct var dplyr::percent_rank cummax
B 2
C 3 D 4
# valores distintos en un Varianza de un vector. Rangos con escala del [0, 1]. max cumulativo Operaciones de conjuntos
vector sd
dplyr::row_number cummin
IQR Desviacin estndar de un
x1 x2
dplyr::intersect(y, z)
Rangos. Empates van al primer min cumulativo B 2
IQR de un vector vector.
valor.
C 3
Filas que aparecen en y y z.
cumprod
x1 x2
dplyr::ntile
Group Data Separa vector en n baldes.
prod cumulativo
pmax
A
B
1
2
dplyr::union(y, z)
C 3 Filas que aparecen en una o ambas y y z.
dplyr::group_by(iris, Species) dplyr::between max por elementos
D 4

Agrupo datos en filas por los valores en Species. Los valores estn entre a y b? pmin
x1 x2 dplyr::setdi(y, z)
A 1
dplyr::ungroup(iris) dplyr::cume_dist min por elementos Filas que aparecen en y pero no en z.
Remueve la agrupacin del data frame. Cumulative distribution. Ligar
iris %>% group_by(Species) %>% summarise() iris %>% group_by(Species) %>% mutate()
x1
A
x2
1

Calcula una fila separada con el resumen para cada grupo. Calcula nuevas variables por grupo.
B 2 dplyr::bind_rows(y, z)
C 3
B
C
2
3
Aade z a y como nuevas filas
D 4
ir ir dplyr::bind_cols(y, z)
C x1 x2 x1 x2
A 1 B 2 Aade z a y como nuevas columnas.
B 2 C 3
C 3 D 4 Ojo: distribuye filas por posicin.
RStudio es un marca registrada de RStudio, Inc. CC BY RStudio info@rstudio.com 844-448-1212 rstudio.com devtools::install_github("rstudio/EDAWR") para sets de datos Lee mas con browseVignettes(package = c("dplyr", "tidyr")) dplyr 0.4.0 tidyr 0.2.0 Actualizado: 1/15
Traducido por Frans van Dunn innovateonline.nl

También podría gustarte