Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中以迭代方式将数据集大小减少1_R_For Loop_Apply_Lapply_Sapply - Fatal编程技术网

在R中以迭代方式将数据集大小减少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

我有一个数据集,我想继续减少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)

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)]更改此选项以回答问题,因为它根据条件解决了问题。