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