让 for 循环将所有结果添加到现有 data.frame
Let a for loop add all results to an existing data.frame
我希望将我的 for 循环生成的结果传递到一个 data.frame
中。因此我创建了一个空的 data.frame 像这样:
result <- data.frame(matrix(ncol = 8, nrow = 1))
然后将列的名称与要搜索的 data.frame
的名称进行匹配:
names(result) <- names(example)
我的 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)
}
所以我的预期输出是我得到一个包含所有结果的 data.frame
。但似乎这段代码每次都会覆盖添加的行,我刚刚将最后一次迭代保存在我的 data.frame
.
中
如何防止此代码覆盖现有结果?
所以我的数据是这样的:
> 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 - .
问题是我只取了 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)
}
当代码像现在这样时,它可以完美运行。
我希望将我的 for 循环生成的结果传递到一个 data.frame
中。因此我创建了一个空的 data.frame 像这样:
result <- data.frame(matrix(ncol = 8, nrow = 1))
然后将列的名称与要搜索的 data.frame
的名称进行匹配:
names(result) <- names(example)
我的 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)
}
所以我的预期输出是我得到一个包含所有结果的 data.frame
。但似乎这段代码每次都会覆盖添加的行,我刚刚将最后一次迭代保存在我的 data.frame
.
如何防止此代码覆盖现有结果? 所以我的数据是这样的:
> 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 - .
问题是我只取了 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)
}
当代码像现在这样时,它可以完美运行。