好吧,我正试着用dplyr包裹我,而不是使用plyr.在我与R的短暂时间里,我已经习惯了ddply.我正在使用一个"简单"的例子来说明如何使用dplyr而不是plyr中的ddply.这里是:在以下内容中:
t1.table <- ddply(diamonds, c("clarity", "cut"), "nrow")
Run Code Online (Sandbox Code Playgroud)
我收到了一份清晰和切割的钻石数量汇总表.在dplyr中,我能想出的最简单的例子是:
diamonds %>% select(clarity, cut) %>% group_by(clarity, cut) %>%
summarise(count=n()) -> t2.table
Run Code Online (Sandbox Code Playgroud)
这似乎有点涉及.有没有更好的方法来简化这个?〜谢谢
谢谢您的帮助。我喜欢这个答案。不像原来的 ddply 命令那么紧凑,但可读性更高。(旁注:回答问题很痛苦,需要工作)
t3.table <- diamonds %>% group_by(clarity, cut) %>% summarise(nrow=n())
Run Code Online (Sandbox Code Playgroud)
在最新版本的 dplyr 中,您可以将其简化为:
diamonds %>% count(clarity, cut)
Run Code Online (Sandbox Code Playgroud)
或者,如果您想保留列名“nrow”:
diamonds %>% count(clarity, cut) %>% rename(nrow = n)
Run Code Online (Sandbox Code Playgroud)
如果您的环境中加载了 plyr 或 rename ,那么您可能需要为重命名添加前缀:
diamonds %>% count(clarity, cut) %>% dplyr::rename(nrow = n)
Run Code Online (Sandbox Code Playgroud)