在R中以迭代方式将数据集大小减少1
我有一个数据集,我想继续减少1,直到某个条件。我希望所有数据集单独保存并合并到一个列表中。例如,我可以手动执行以下操作:在R中以迭代方式将数据集大小减少1,r,for-loop,apply,lapply,sapply,R,For Loop,Apply,Lapply,Sapply,我有一个数据集,我想继续减少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<-mtc
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)
a您使用for循环的路径是正确的。如果你只得到最后一个,那么你创建结果框架的方式是错误的
dataList = list()
for (i in seq(1, 10)){
dataList[[i]] = mtcars[i:nrow(mtcars),]
}
更改为“匹配编辑”您在for循环的正确路径上。如果你只得到最后一个,那么你创建结果框架的方式是错误的
dataList = list()
for (i in seq(1, 10)){
dataList[[i]] = mtcars[i:nrow(mtcars),]
}
更改为匹配编辑两件事:
没有理由重复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),])
mc两件事:
没有理由重复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),])
mc将问题从长度更改为nrow以匹配我的解释,但仍接受此作为答案。将问题从长度更改为nrow以匹配我的解释,但仍接受此作为答案。如何将条件修改为与数据帧相关的内容。例如,如果我想在disp<80时结束进程,那么“once disp<80”是什么意思?一旦第一行的disp为或,例如,如果您希望在mpg总和低于500时停止,您可以使用sum(mtcars$mpg[-(1:i)]将此更改为回答,因为它解决了条件问题。我如何将条件修改为与数据帧相关的内容。例如,如果我想在disp<80时结束进程,您所说的“once disp<80”是什么意思?一旦第一行的disp为或,例如,如果您想在mpg总和低于500时停止,您可以使用sum(mtcars$mpg[-(1:i)]更改此选项以回答问题,因为它根据条件解决了问题。