从group_by()中提取data.frame()

时间:2014-10-20 19:02:28

标签: r dataset dplyr

我想通过R上的dplyr包的group_by()函数提取data.frame产生。

我的原始数据如下:

   nb   site  wincod    od     cg
1 7073  ama      1 0.005351899  0
2 7129  ama      1 0.080931646  0 
3 7130  ama      1 0.446781435  0
4 7131  ama      1 0.451162869  0
5 7132  ama      1 0.992270042  0
... ... ...     ...  ...       ...

我想要的是让每个小组都通过" site"和" wincod"。我试过这个:

as.data.frame(group_by(tab_OD,site,wincod))

但它并没有返回我想要的数据框。 我能做到:

groupe1 <- filter(tab_OD,site=="ama",wincod==1)
groupe2 <- filter(tab_OD,site=="ama",wincod==2)
...
groupeN <- filter(tab_OD,site=="che",wincod==1)

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您也可以使用split根据条件创建data.frame列表,例如

with(tab_OD, split(od, paste(site, wincod, sep = "_")))

或(根据Hadleys评论)

with(tab_OD, split(od, list(site, wincod)))