R: Creando una tabla de niveles de factor
Estoy trabajando con el lenguaje de programación R. Supongamos que tengo los siguientes datos:
var1 <- c("A1", "A2", "A3")
var2 <- c("B1", "B2")
var_1_a <- as.factor(sample(var1, 100, replace=TRUE, prob=c(0.3, 0.3, 0.4)))
var_1_b <- as.factor(sample(var2, 100, replace=TRUE, prob=c(0.5, 0.5)))
my_data = data.frame(var_1_a, var_1_b)
head(my_data)
var_1_a var_1_b
1 A2 B1
2 A2 B2
3 A1 B2
4 A2 B2
5 A2 B2
6 A3 B1
Estoy tratando de crear un nuevo conjunto de datos que resuma el conjunto de datos anterior, algo así:
new_data = data.frame(var_1_a = table(my_data$var_1_a), var_2_a = table(my_data$var_1_b))
Pero esto resulta en el siguiente error:
Error in data.frame(var_1_a = table(my_data$var_1_a), var_2_a = table(my_data$var_1_b)) :
arguments imply differing number of rows: 3, 2
¿Alguien podría decirme qué estoy haciendo mal?
¡Gracias!
davy.ai
El problema con el código es que el marco de datos “new_data” está intentando fusionar tablas de diferentes longitudes: “var_1_a” tiene 3 categorías mientras que “var_1_b” tiene 2 categorías. Para resolver esto, podemos utilizar la función “addNA” para agregar la categoría faltante en “var_1_b”, de la siguiente manera:
“`{r}
new_data = data.frame(var_1_a = table(my_data$var_1_a), var_1_b = table(addNA(my_data$var_1_b)))
var_1_a var_1_b
1 A1 22
2 A2 34
3 A3 44
NA 0 0
“`
donde se muestran los recuentos de frecuencia para “var_1_a” y “var_1_b”, incluyendo un recuento de 0 para los valores faltantes (si los hay).