【发布时间】:2017-03-17 06:02:25
【问题描述】:
我知道在 R 中必须有一种简单的方法可以在 For 循环中迭代这个过程,但我在编写循环方面还很陌生。这是我想用循环完成的过程
sfus1a<-ddply(sfus,.(Phylum),nrow);sfus1a[1,1]
sfus1b<-subset(sfus,sfus$Phylum==sfus1a[1,1])
sfus1<-ddply(sfus1b,.(Genus),nrow);sfus1
sfus1a<-ddply(sfus,.(Phylum),nrow);sfus1a[2,1]
sfus1b<-subset(sfus,sfus$Phylum==sfus1a[2,1])
sfus2<-ddply(sfus1b,.(Genus),nrow);sfus2
sfus1a<-ddply(sfus,.(Phylum),nrow);sfus1a[3,1]
sfus1b<-subset(sfus,sfus$Phylum==sfus1a[3,1])
sfus3<-ddply(sfus1b,.(Genus),nrow);sfus3
sfus1a<-ddply(sfus,.(Phylum),nrow);sfus1a[4,1]
sfus1b<-subset(sfus,sfus$Phylum==sfus1a[4,1])
sfus4<-ddply(sfus1b,.(Genus),nrow);sfus4
所以输出应该是四个数据帧sfus1、sfus2、sfus3和sfus4
我尝试编写的以下循环不起作用
for(i in 1:4){
sfus1a<-ddply(sfus,.(Phylum),nrow);sfus1a[i,1]
sfus1b<-subset(sfus,sfus$Phylum==sfus1a[i,1])
sfusi<-ddply(sfus1b,.(Genus),nrow);sfusi
}
【问题讨论】: