का उपयोग करते समय summarise
के साथ plyr
के ddply
समारोह, खाली श्रेणियों डिफ़ॉल्ट रूप से नहीं किया जाता। आप इस व्यवहार को जोड़कर बदल सकते हैं .drop = FALSE
। हालाँकि, जब यह उपयोग के summarise
साथ काम नहीं करता है dplyr
। क्या परिणाम में खाली श्रेणियों को रखने का एक और तरीका है?
यहां नकली डेटा के साथ एक उदाहरण दिया गया है।
library(dplyr)
df = data.frame(a=rep(1:3,4), b=rep(1:2,6))
# Now add an extra level to df$b that has no corresponding value in df$a
df$b = factor(df$b, levels=1:3)
# Summarise with plyr, keeping categories with a count of zero
plyr::ddply(df, "b", summarise, count_a=length(a), .drop=FALSE)
b count_a
1 1 6
2 2 6
3 3 0
# Now try it with dplyr
df %.%
group_by(b) %.%
summarise(count_a=length(a), .drop=FALSE)
b count_a .drop
1 1 6 FALSE
2 2 6 FALSE
बिल्कुल वैसा नहीं जैसा मैं उम्मीद कर रहा था। वहाँ के dplyr
रूप .drop=FALSE
में एक ही परिणाम प्राप्त करने के लिए एक विधि है plyr
?