我有一个数据集,我希望在特定条件下一直减少1。我希望所有数据集分别保存并合并到列表中。例如,我可以手动进行:
a<-mtcars[1:nrow(mtcars),]
b<-mtcars[2:nrow(mtcars),]
c<-mtcars[3:nrow(mtcars),]
d<-mtcars[4:nrow(mtcars),]
e<-mtcars[5:nrow(mtcars),]
f<-mtcars[6:nrow(mtcars),]
g<-mtcars[7:nrow(mtcars),]
h<-mtcars[8:nrow(mtcars),]
i<-mtcars[9:nrow(mtcars),]
j<-mtcars[10:nrow(mtcars),]
as.list(a,b,c,d,e,f,g,h,i,j)
让我们假设在第10行,满足某些条件,例如某个日期。我该怎么做呢?我已经尝试过for循环,但是最终仅以最后一个数据集作为输出,而不是每个递增的较小数据集。
答案 0 :(得分:1)
使用for循环,您处在正确的路径上。如果只用创建结果框架的方式找回最后一个,那是错误的。
dataList = list()
for (i in seq(1, 10)){
dataList[[i]] = mtcars[i:nrow(mtcars),]
}
已更改以匹配编辑
答案 1 :(得分:1)
两件事:
没有理由重复n:nrow(mtcars),只需传递-(1:i)
作为行索引。
要包含条件,可以将ifelse与break()
一起使用。
例如,这是for循环,条件是它将重复此循环7次:
mc<-list()
for(i in 1:nrow(mtcars)) ifelse(i==7,break(),mc[[i]]<-mtcars[-(1:i),])