Estoy teniendo el siguiente problema mientras hago un análisis con R.
Tengo un marco de datos como este:
Name | Group | Count
Person 1 | A | 3
Person 2 | A | 1
Person 3 | A | 0
Person 1 | B | 5
Person 2 | B | 0
Person 3 | B | 1
Person 1 | C | 1
y necesitaría "expandirlo" (no estoy seguro si es el término correcto) para ser así:
Person 1 | A
Person 1 | A
Person 1 | A
Person 2 | A
Person 1 | B
Person 1 | B
etc.
Por lo tanto, toma el valor del par Persona 1 y A (en este ejemplo, 3) y forma tres filas con la Persona 1 y A y lo hace para cada Persona - Grupo - combinación. No puedo encontrar buenas palabras para buscar en línea.
reshape()
funciónreshape2
paquete en R. También podría ayudar adput
2 marcos de datos de ejemplo: uno con la entrada y otro con la salida.Respuestas:
Si bien es un paquete muy útil, creo que la remodelación es excesiva en este caso, el representante puede hacer el trabajo.
Aquí hay algunos datos de ejemplo:
Ahora, para "expandirlo":
No pude encontrar una manera de trabajar directamente en el marco de datos desde la parte superior de mi cabeza, así que estoy trabajando en cada variable por separado y luego volver a ensamblarlas, lo cual es un poco feo, pero debería estar bien siempre y cuando se preocupe de usar siempre La misma variable para los recuentos.
fuente
df[rep(seq_len(nrow(df)), df$count), 1:2]
?Puede usar la función inestable del paquete de remodelación.
Dado el df anterior (por @ Gaël Laurans)
fuente
untable
hace exactamente lo que mencioné en mi comentario :-) ¡Gracias por recordarme esa función!Y a
uncount
partir detidyr
ahora da el mismo resultado que el anterior.fuente