让for循环将所有结果添加到现有的data.frame
我希望由for循环生成的结果被传递到一个让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
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])和(x newrow为什么在循环内使用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)
}