データフレーム内の一意の各行の数を数えますか?[閉まっている]


8

次のようなデータフレームがあるとします。

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

私が欲しいのは、次のような一意の各行の数を数えることです:

  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

Rでそれを実現する最も簡単な方法は何ですか?


@Whuberは、保留にするのではなく、SOに移行するだけです。それは、間違ったSEサイトで尋ねられる、合理的で、よくフォーマットされた明確な質問です。私たちはそこに将来のユーザーが利益を得ることができる他の多くの良い答えを提供できます。
David Arenburg、2014年

@David A提案ありがとうございます。私はあなたが正しいと思いますが、(a)ここで答えがあったのを見ました、そして(b)この質問が以前にSOに出てきたと強く思いました。
whuber

1
@whuber、私はだまされないようにチェックしませんでしたが、OPはまだ多くの良い答えを受け取ると思います。いずれにせよ、彼らはそれで良いplyrようですので、それはもう問題ではないと思います。
David Arenburg、2014年

回答:


13

パッケージのcount関数を使用しplyrます。

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

出力:

> 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

1
コードをコピーして貼り付けました。「mutate_impl(.data、dot)のエラー:列varsは長さ8(行数)または3ではなく1でなければなりません」
StatsSorceress
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.