0
tnt <- data.frame(g = rep(letters[1:2], each = 5), x = c(1:5,2:6), y = "things")
library(plyr)
ddply(tnt, .(g,x), summarise, count = length(y))
分組因子各級考慮到在每個g
組中計數的行數爲每個x
值上面的代碼:表示與ddply
什麼是具有在所表示的電平6
最簡單的方法a
和1
代表b
?即在所有級別g
中代表的所有級別x
。
我的解決方案將使用as.data.frame(table(x))
將每個ddply
塊的級別重置爲1:6
,但看起來很麻煩。
(如果最簡單的方法涉及基地,我不依賴於使用plyr)
編輯
的由@rrs回答是偉大的(+1),但是,這是我的在嘗試創建一個簡單的例子時,我簡化了這個問題。有許多因素,分組(不只是g
),當我嘗試.drop = FALSE
我得到以下錯誤:
Error: length(rows) == 1 is not TRUE
我認爲這可能是因爲nevor一起,決不應該發生的許多分組因素。我怎樣才能做到以下幾點:
c4 <- data.frame(g = rep(letters[1:2], each = 5),
f = c(sample(letters[24:25], 5, replace = TRUE),
sample(letters[25:26], 5, replace = TRUE)),
x = c(1:5,2:6),
y = "things")
ddply(c4, .(g,f,x), summarise, count = length(y), .drop = FALSE)
但.drop = FALSE
應只適用於x
不g
和f
即應該有a
沒有z
。
您可能需要返工您編輯的例子。當我看着'c4'時,我在第22,24,26,28和30行看到了「z」和「a」。 – rrs
感謝@rrs現在糾正了它。 – user1320502
我在編輯中運行了你的代碼,沒有「z」和「a」在一起的行。它有什麼問題嗎? – rrs