dplyr相当于plyr钻石中的ddply例子

Dav*_*ker 5 r plyr dplyr

好吧,我正试着用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)

这似乎有点涉及.有没有更好的方法来简化这个?〜谢谢

Dav*_*ker 5

谢谢您的帮助。我喜欢这个答案。不像原来的 ddply 命令那么紧凑,但可读性更高。(旁注:回答问题很痛苦,需要工作)

    t3.table <- diamonds %>% group_by(clarity, cut) %>% summarise(nrow=n()) 
Run Code Online (Sandbox Code Playgroud)


Mar*_*ham 5

在最新版本的 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)