Die Anzahl jeder eindeutigen Zeile in einem Datenrahmen zählen? [geschlossen]

8

Angenommen, ich habe einen Datenrahmen wie:

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

Ich möchte die Anzahl jeder einzelnen Zeile zählen, z. B.:

  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

Was ist der einfachste Weg, um es in R zu realisieren?

David Z.
quelle
@Whuber, anstatt es in die Warteschleife zu stellen, migrieren Sie es einfach nach SO. Es ist eine vernünftige, gut formatierte und klare Frage, die auf einer falschen SE-Site gestellt wird. Wir können dort viele andere gute Antworten geben, von denen zukünftige Benutzer profitieren können.
David Arenburg
@ David A Danke für den Vorschlag. Ich denke, Sie haben Recht, aber zu der Zeit (a) habe ich gesehen, dass es hier eine Antwort gibt, und (b) ich habe stark vermutet, dass genau diese Frage schon einmal auf SO aufgetaucht ist.
whuber
1
@whuber, ich habe nicht nach Dupes gesucht, aber ich denke, das OP würde noch viele gute Antworten erhalten. Wie auch immer, es scheint, dass sie gut plyrdamit umgehen können, also spielt das wohl keine Rolle mehr.
David Arenburg

Antworten:

13

Verwenden Sie die countFunktion aus dem plyrPaket.

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

Ausgabe:

> 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
quelle
1
Ich habe Ihren Code kopiert und eingefügt. Ich bekam: "Fehler in mutate_impl (.data, dots): Spalte varsmuss Länge 8 (die Anzahl der Zeilen) oder eine sein, nicht 3"
StatsSorceress