特定の変数のカウントの列を生成したいと考えています。最も簡単な方法は、table() を使用することです。かなり少量のデータの場合、問題はないようです。
A <- data.frame(A1 = sample(1:1000, 100000, replace = TRUE))
B <- data.frame(B1 = sample(1:1000, 100000, replace = TRUE))
C <- cbind(A, B)
C$countC <- table(as.factor(C$A1))[C$A1]
summary(C$countC)
Min. 1st Qu. Median Mean 3rd Qu. Max.
65 94 101 101 108 132
ただし、より大きなセットからテーブルを構築している場合 (現在、1:1k ではなく 1:10k からサンプリングしていることに注意してください)、構築しているデータに NA がないにもかかわらず、NA が生成されます。からのテーブル:
A <- data.frame(A1 = sample(1:10000, 100000, replace = TRUE))
B <- data.frame(B1 = sample(1:10000, 100000, replace = TRUE))
C <- cbind(A, B)
C$countC <- table(as.factor(C$A1))[C$A1]
summary(C$A1)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1 2512 5005 5008 7502 10000
summary(C$countC)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
1.00 8.00 10.00 10.18 12.00 25.00 7
データがデータ フレーム内にない場合、問題は発生しません。
A <- sample(1:10000, 1000000, replace = TRUE)
summary(table(as.factor(A))[A])
Min. 1st Qu. Median Mean 3rd Qu. Max.
57 94 101 101 108 144
その理由を知っている人はいますか?