我有一个循环,我想对不同的样本进行多次计算,并保存每个样本的结果。这些样本针对每个循环不同。我想使用" i"在循环中切割样品。
例如:
我构建了以下功能,但是 cut2功能存在问题,因为它没有识别" i"。在lapply循环之外它可以工作,但不在循环内。
d=data.frame(MEt_Rainfed=rep(0,100),MEp_Rainfed=rep(0,100),MEt_Irrigation=rep(0,100),MEp_Irrigation=rep(0,100))
o<-lapply(0:100, function(i){
Alldata$irri=cut2(Alldata$irrigation,i)
levels(Alldata$irri)<-c("0","1")
Alldata_Rainfed<-subset(Alldata, irri == 0)
Alldata_Irrigation<-subset(Alldata, irri == 1)
#calculations per sample, then store all the values per i and per variable in a dataframe: (the calculations are not shown in this example)
d[i, ] = c(MEt_Rainfed,MEp_Rainfed,MEt_Irrigation,MEp_Irrigation)
})
out<-as.data.frame(do.call(rbind, o))
答案 0 :(得分:0)
我仍然不确定上一个例子中出了什么问题。但是,我用另一种方式解决了这个问题:
o<-lapply(1:99, function(i){
Alldata_Rainfed<-subset(Alldata, irrigation <= i)
Alldata_Irrigation<-subset(Alldata, irrigation > i)
d[i, ] = c(MEt_Rainfed,MEp_Rainfed,MEt_Irrigation,MEp_Irrigation)
})
值得注意的是,循环也不应该从0到100,因为这正是变量的范围。