Contar o número de cada linha exclusiva em um quadro de dados? [fechadas]

8

Suponha que eu tenha um quadro de dados 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

o que eu quero é contar o número de cada linha ú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

Qual é a maneira mais fácil de realizá-lo no R?

David Z
fonte
@Whuber, em vez de colocá-lo em espera, basta migrá-lo para SO. É uma pergunta razoável, bem formatada e clara, feita em um site errado da SE. Podemos fornecer muitas outras boas respostas para as quais os futuros usuários podem se beneficiar.
David Arenburg 23/10
@ David A Obrigado pela sugestão. Acho que você está certo, mas na época (a) vi que havia uma resposta aqui e (b) suspeitava fortemente que essa mesma pergunta já havia aparecido no SO antes.
whuber
1
@whuber, eu não procurei bobagens, mas acho que o OP ainda receberia muito mais boas respostas. De qualquer forma, parece que eles são bons, plyrentão isso não importa mais, eu acho.
David Arenburg 23/10

Respostas:

13

Use a countfunção da plyrembalagem.

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"))

Resultado:

> 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
fonte
1
Copiei e colei seu código. Eu obtive: "Erro no mutate_impl (.data, pontos): A coluna varsdeve ter o comprimento 8 (o número de linhas) ou uma, não 3"
StatsSorceress