¿Cuenta el número de cada fila única en un marco de datos? [cerrado]

8

Supongamos que tengo un marco de datos como:

df<-data.frame(x1=c(0,1,1,1,2,3,3,3),
x2=c(0,1,1,3,2,3,3,2),
x3=c(0,1,1,1,2,3,3,2))
df
  x1 x2 x3
1  0  0  0
2  1  1  1
3  1  1  1
4  1  3  1
5  2  2  2
6  3  3  3
7  3  3  3
8  3  2  2

lo que quiero es contar el número de cada fila única como:

  x1 x2 x3 count
1  0  0  0  1
2  1  1  1  2
4  1  3  1  1
5  2  2  2  1 
6  3  3  3  2
8  3  2  2  1

¿Cuál es la forma más fácil de realizarlo en R?

David Z
fuente
@Whuber, en lugar de ponerlo en espera, simplemente migrarlo a SO. Es una pregunta razonable, bien formateada y clara formulada en un sitio SE incorrecto. Podemos proporcionar muchas otras buenas respuestas de las que los futuros usuarios pueden beneficiarse.
David Arenburg el
@David A Gracias por la sugerencia. Creo que tienes razón, pero en el momento (a) vi que había una respuesta aquí y (b) sospechaba que esta misma pregunta había aparecido en SO antes.
whuber
1
@whuber, no busqué engaños, pero creo que el OP todavía recibiría muchas más buenas respuestas. De cualquier manera, parece que son buenos, plyrasí que eso ya no importa, supongo.
David Arenburg

Respuestas:

13

Use la countfunción del plyrpaquete.

library(plyr)
df = data.frame(x1=c(0,1,1,1,2,3,3,3),
               x2=c(0,1,1,3,2,3,3,2),
               x3=c(0,1,1,1,2,3,3,2))

count(df, vars = c("x1", "x2", "x3"))

Salida:

> count(df, vars = c("x1", "x2", "x3"))
  x1 x2 x3 freq
1  0  0  0    1
2  1  1  1    2
3  1  3  1    1
4  2  2  2    1
5  3  2  2    1
6  3  3  3    2
tchakravarty
fuente
1
Copié y pegué tu código. Obtuve: "Error en mutate_impl (.data, puntos): la columna varsdebe tener una longitud de 8 (el número de filas) o una, no 3"
StatsSorceress