dplyr:如何编写等价于table()基函数并保留列名?

dplyr:如何编写等价于table()基函数并保留列名?,r,left-join,calculated-columns,dplyr,R,Left Join,Calculated Columns,Dplyr,dplyr很快,我想经常使用%.%管道。 我想使用一个表函数(按频率计数)并保留列名,输出为data.frame 如何仅使用dplyr函数实现与下面代码相同的功能(想象一下有6M行的巨型data.table(BIGiris))呢 想象一下连接到这样一个表(假设iris data.frame有6M行),而物种更像是“物种ID” >栖息地左侧(外部,栖息地) 加入者:“物种” 我生活的物种 1塞托萨50海 2彩色50 3弗吉尼亚州50 > 对于第一部分,您可以像这样使用dplyr library(

dplyr很快,我想经常使用%.%管道。 我想使用一个表函数(按频率计数)并保留列名,输出为data.frame

如何仅使用dplyr函数实现与下面代码相同的功能(想象一下有6M行的巨型data.table(BIGiris))呢

想象一下连接到这样一个表(假设iris data.frame有6M行),而物种更像是“物种ID”

>栖息地左侧(外部,栖息地)
加入者:“物种”
我生活的物种
1塞托萨50海
2彩色50
3弗吉尼亚州50
> 

对于第一部分,您可以像这样使用
dplyr

library(dplyr)
out <- iris %>% group_by(Species) %>% summarise(my_cnt1 = n())
out

Source: local data frame [3 x 2]

     Species my_cnt1
1     setosa      50
2 versicolor      50
3  virginica      50
库(dplyr)
外%group\U by(物种)%>%总结(my\u cnt1=n()
出来
来源:本地数据帧[3 x 2]
物种my_cnt1
1刚毛50
2彩色50
3弗吉尼亚州50
要在一个链中继续,请执行以下操作:

out <- iris %>% group_by(Species) %>% summarise(my_cnt1 = n()) %>% left_join(habitat)
out

Source: local data frame [3 x 3]

     Species my_cnt1 lives_in
1     setosa      50      sea
2 versicolor      50       NA
3  virginica      50       NA
out%group\u by(物种)%%>%summary(my\u cnt1=n())%%>%left\u join(栖息地)
出来
来源:本地数据帧[3 x 3]
我生活的物种
1塞托萨50海
2花色50 NA
3维吉尼亚50 NA

顺便说一下,
dplyr
现在使用
%>%
代替
%.
。它做同样的事情,并且也是包的一部分。

或者您可以简单地附加数据帧,然后运行table函数。这也将显示列名

> attach(iris)
> table(Species)
 Species
    setosa versicolor  virginica 
        50         50         50

太棒了!使用tally(),如果您想要自定义列名,我想您必须这样做:
out%groupby(Species)%%>%tally()%%>%select(Species,my_cnt1=n)
> left_join(out,habitat)
Joining by: "Species"
     Species my_cnt1 lives_in
1     setosa      50      sea
2 versicolor      50     <NA>
3  virginica      50     <NA>
> 
library(dplyr)
out <- iris %>% group_by(Species) %>% summarise(my_cnt1 = n())
out

Source: local data frame [3 x 2]

     Species my_cnt1
1     setosa      50
2 versicolor      50
3  virginica      50
out <- iris %>% group_by(Species) %>% summarise(my_cnt1 = n()) %>% left_join(habitat)
out

Source: local data frame [3 x 3]

     Species my_cnt1 lives_in
1     setosa      50      sea
2 versicolor      50       NA
3  virginica      50       NA
> attach(iris)
> table(Species)
 Species
    setosa versicolor  virginica 
        50         50         50