tablas libreria funcion filtrar datos data cruzadas agrupar r count dplyr summary

libreria - Tabla simple con dplyr en datos de secuencia



tablas cruzadas en r (1)

Me gustaría hacer una tabla simple con

dplyr

y

summarise

Pero realmente no puedo entender cómo ... (Aunque debería ser bastante simple).

Tengo una matriz de secuencias. Cuando simplemente tabulo

table(dta)

Tengo el resultado que quiero.

dta acquaintance alone child notnotnot nuclear 1 2 17 19 131 nuclear and acquaintance nuclear and acquaintance nuclear and acquaintance nuclear and acquaintance partner 1 1 1 35 2

Sin embargo, no puedo entender cómo hacer lo mismo con un resumen

Cualquier sugerencia ?

dta = structure(c("nuclear", "nuclear", "child", "child", "child", "acquaintance", "nuclear and acquaintance", "nuclear and acquaintance", "notnotnot", "nuclear", "nuclear", "nuclear", "child", "child", "child", "alone", "nuclear and acquaintance", "nuclear and acquaintance", "notnotnot", "nuclear", "nuclear", "child", "child", "child", "child", "nuclear", "nuclear and acquaintance", "nuclear and acquaintance", "notnotnot", "nuclear", "nuclear", "child", "child", "child", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear and acquaintance", "notnotnot", "nuclear", "nuclear", "nuclear", "child", "child", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear and acquaintance", "notnotnot", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear and acquaintance", "notnotnot", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear and acquaintance", "notnotnot", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear and acquaintance", "notnotnot", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear and acquaintance", "notnotnot", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear and acquaintance", "notnotnot", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear and acquaintance", "notnotnot", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear and acquaintance", "partner", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear and acquaintance", "partner", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear and acquaintance", "notnotnot", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear and acquaintance", "notnotnot", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear", "nuclear", "nuclear", "nuclear", "notnotnot", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear", "nuclear", "nuclear", "nuclear", "notnotnot", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear", "nuclear", "nuclear", "nuclear", "notnotnot", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear", "nuclear", "nuclear", "nuclear", "notnotnot", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear", "nuclear", "child", "nuclear", "notnotnot", "nuclear", "nuclear", "nuclear", "nuclear", "nuclear and acquaintance", "nuclear", "nuclear", "child", "alone", "notnotnot", "nuclear" ), .Dim = c(10L, 21L), .Dimnames = list(c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10"), c("12:10", "12:20", "12:30", "12:40", "12:50", "13:00", "13:10", "13:20", "13:30", "13:40", "13:50", "14:00", "14:10", "14:20", "14:30", "14:40", "14:50", "15:00", "15:10", "15:20", "15:30")))


Solo tiene que convertir sus datos a un data.frame para usar dplyr y luego puede obtener fácilmente su resultado deseado:

require(dplyr) # ungrouped data_frame(var = c(dta)) %>% group_by_("var") %>% summarise(n()) ## var n() ## 1 acquaintance 1 ## 2 alone 2 ## 3 child 17 ## 4 notnotnot 19 ## 5 nuclear 131 ## 6 nuclear and acquaintance 1 ## 7 nuclear and acquaintance 1 ## 8 nuclear and acquaintance 1 ## 9 nuclear and acquaintance 35 ## 10 partner 2

Si desea hacer esto para cada columna por separado, puede usar tidyr para reunir primero el resultado y luego distribuirlo nuevamente.

require(tidyr) # grouped dta %>% as.data.frame %>% gather %>% group_by(key, value) %>% summarise(N = n()) %>% spread(key, N) ## value 12:10 12:20 12:30 12:40 12:50 13:00 13:10 13:20 13:30 13:40 13:50 14:00 14:10 ## 1 acquaintance 1 NA NA NA NA NA NA NA NA NA NA NA NA ## 2 alone NA 1 NA NA NA NA NA NA NA NA NA NA NA ## 3 child 3 3 4 3 2 NA NA NA NA NA NA NA NA ## 4 notnotnot 1 1 1 1 1 1 1 1 1 1 1 NA NA ## 5 nuclear 3 3 3 4 5 7 7 7 7 7 7 7 7 ## 6 nuclear and acquaintance NA NA NA NA NA NA NA NA NA NA NA NA NA ## 7 nuclear and acquaintance NA NA NA NA NA NA NA NA NA NA NA NA NA ## 8 nuclear and acquaintance NA NA NA NA NA NA NA NA NA NA NA NA NA ## 9 nuclear and acquaintance 2 2 2 2 2 2 2 2 2 2 2 2 2 ## 10 partner NA NA NA NA NA NA NA NA NA NA NA 1 1 ## Variables not shown: 14:20 (int), 14:30 (int), 14:40 (int), 14:50 (int), 15:00 (int), 15:10 (int), 15:20 (int), ## 15:30 (int)