让for循环将所有结果添加到现有的data.frame

让for循环将所有结果添加到现有的data.frame,r,for-loop,dataframe,rbind,R,For Loop,Dataframe,Rbind,我希望由for循环生成的结果被传递到一个data.frame。因此,我创建了一个空data.frame,如下所示: result <- data.frame(matrix(ncol = 8, nrow = 1)) > head(example[1:4,-9]) V1 V2 V3 V4 V5 V6 V7 V8 1 Spenn-ch00 AUGUSTUS mRNA 5691 9072 0.84 - . 2 Spenn-ch00 AUG

我希望由for循环生成的结果被传递到一个
data.frame
。因此,我创建了一个空data.frame,如下所示:

result <- data.frame(matrix(ncol = 8, nrow = 1))
> head(example[1:4,-9])
      V1       V2   V3    V4    V5   V6 V7 V8
1 Spenn-ch00 AUGUSTUS mRNA  5691  9072 0.84  -  .
2 Spenn-ch00 AUGUSTUS mRNA 11246 12192 0.17  -  .
3 Spenn-ch00 AUGUSTUS mRNA 12799 15702 0.33  -  .
4 Spenn-ch00 AUGUSTUS mRNA 15752 18482 0.48  -  .
我的for循环应该遍历一个值列表,检查输入的
data.frame
是否符合条件,然后将该值的整行添加到我的空
data.frame

lpos
[1] 5

for(i in lpos){
indx <- sapply(example[,4], function(x) (x > minpos[i]) & (x < maxpos[i])) 
newrow <- example[indx,]
result = rbind(result, newrow)
}

问题是我只取了
lpos
中包含的一个数字,而不是使用从1到
lpos

lpos
[1] 5

for(i in 1:lpos){
indx <- sapply(example[,4], function(x) (x > minpos[i]) & (x < maxpos[i])) 
newrow <- example[indx,]
result = rbind(result, newrow)
}
lpos
[1] 5
适用于(i/1:LPO){
indx minpos[i])和(xnewrow为什么在循环内使用
O
,很容易被误读为
0
0。请添加
头的输出(示例)
dput(示例)
到帖子中,这样我们就知道了你的数据。也许你可以避免for循环altogther。我想你是在寻找范围上的合并-见,所以我发布了我的
data.frame
的标题。是的,这看起来对我来说是正确的选择!看起来你只需要更改为
for(I in 1:lpos){…
--或者
LPO
是一个向量?更多的细节会有所帮助。
lpos
[1] 5

for(i in 1:lpos){
indx <- sapply(example[,4], function(x) (x > minpos[i]) & (x < maxpos[i])) 
newrow <- example[indx,]
result = rbind(result, newrow)
}