1
我想写一个“for循环”来通过迭代来更新我的R数据框。For循环更新data.frame
这里是我的代码:
datalist = list()
for (i in 1:5) {
dat <- data.frame(ID=LETTERS[seq(from = 1, to = 20)],nutrition=rnorm(20, mean=50, sd=10),
Stage=c(rep("A1",5), rep("B1",15)))
dat$ADG<-dat$nutrition*0.05
dat$M_weight<-dat$nutrition*0.5+dat$ADG*100
dat$Age<-dat$M_weight*1.1+dat$ADG*0.6
dat$Stage<-as.character(dat$Stage)
dat$Stage[dat$ADG>=3]<-"C1"
dat$i <- i # maybe you want to keep track of which iteration produced it?
datalist[[i]] <- dat # add it to your list #
}
big_data = do.call(rbind, datalist)
从迭代2,我想有“舞台”更新为“C1”如果ADG等于或大于3,但这并不适用于迭代1。
非常感谢!我感谢任何答复!
不清楚你的意思。循环正在做它应该做的事情,因为迭代器'i'只在一个地方使用。如果你想对前一次迭代进行一些依赖,可能会添加一个'if(i> 1){do stuff with i-1}'block? – Frank
嗨@Frank。谢谢。是的,我希望对前面的迭代有一定的依赖性,所以我会尝试你提到的方块。谢谢,我感谢你的回答。 – Joanna
@Joanna你的代码只更新''舞台'基于'ADG',但'ADG'永远不会改变。迭代1后的数据应该如何与原始数据不同? – CPak