在每次迭代后输出唯一数据帧的For循环

在每次迭代后输出唯一数据帧的For循环,r,for-loop,R,For Loop,我知道在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[

我知道在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

sfus1a首先创建一个列表,否则
for
循环将在每次迭代中覆盖变量

# pre-allocate lists
sfus1a <- vector(mode = "list", length = nrow(sfus))
sfus1b <- vector(mode = "list", length = nrow(sfus))
sfusi <- vector(mode = "list", length = nrow(sfus))

for(i in 1:4){
  sfus1a[i] <- ddply(sfus, .(Phylum), nrow)
  sfus1b[i] <- subset(sfus, sfus$Phylum == sfus1a[i, 1])
  sfusi[i] <- ddply(sfus1b, .(Genus), nrow)
}
#预分配列表

sfus1a首先创建一个列表,否则
for
循环将在每次迭代中覆盖变量

# pre-allocate lists
sfus1a <- vector(mode = "list", length = nrow(sfus))
sfus1b <- vector(mode = "list", length = nrow(sfus))
sfusi <- vector(mode = "list", length = nrow(sfus))

for(i in 1:4){
  sfus1a[i] <- ddply(sfus, .(Phylum), nrow)
  sfus1b[i] <- subset(sfus, sfus$Phylum == sfus1a[i, 1])
  sfusi[i] <- ddply(sfus1b, .(Genus), nrow)
}
#预分配列表
sfus1a