データ フレーム内の因子の出現回数をカウントしたい。たとえば、次のコードで特定のタイプのイベントの数をカウントするには:
library(plyr)
events <- data.frame(type = c('A', 'A', 'B'),
quantity = c(1, 2, 1))
ddply(events, .(type), summarise, quantity = sum(quantity))
出力は次のとおりです。
type quantity
1 A 3
2 B 1
しかし、 、 、A
、の 3 種類のイベントがあることがわかっていて、 のカウントも確認したい場合はどうすればよいでしょうか。つまり、出力を次のようにします。B
C
C
0
type quantity
1 A 3
2 B 1
3 C 0
どうすればいいですか?これを行うための関数がどこかに定義されている必要があるように感じます。
以下は、これをどのように行うかについての私の 2 つのあまり良くない考えです。
アイデア #1:ループを使用してこれを行うことができることは知っていますが、 でループfor
を使用している場合、何か間違ったことをしていると広く言われていることは知っています。それを行うためのより良い方法があるに違いありません。for
R
アイデア #2:元のデータ フレームにダミー エントリを追加します。このソリューションは機能しますが、よりエレガントなソリューションが必要なようです。
events <- data.frame(type = c('A', 'A', 'B'),
quantity = c(1, 2, 1))
events <- rbind(events, data.frame(type = 'C', quantity = 0))
ddply(events, .(type), summarise, quantity = sum(quantity))