我想通过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)
感谢您的帮助。
答案 0 :(得分:1)
您也可以使用split
根据条件创建data.frame
列表,例如
with(tab_OD, split(od, paste(site, wincod, sep = "_")))
或(根据Hadleys评论)
with(tab_OD, split(od, list(site, wincod)))