0

我在 R 中编写了一个循环。代码应该遍历列表中定义的变量列表,然后为每个变量执行一个函数。

问题 1 - 我无法遍历变量列表
问题 2 - 我需要将值的每个输出插入 Mongo DB

这是列表的示例:

121715771201463_626656620831011
121715771201463_1149346125105084

基于这个值 - 我正在运行一个代码,我希望这个输出被插入到 MongoDB 中。现在只插入第一个值及其对应的输出

test_list <- C("121715771201463_626656620831011","121715771201463_1149346125105084","121715771201463_1149346125105999")

for (i in test_list) { //myfunction// mongo.insert(mongo, DBNS, i) }

我只能从列表中选择第一个值的值,而不是全部

任何帮助表示赞赏。

4

2 回答 2

1

试试这个例子,它打印最后的字符

myfunction <- function(x){ print( substr(x, 27, nchar(x)) ) } 

test_list <- c("121715771201463_626656620831011", 
               "121715771201463_1149346125105084", 
               "121715771201463_1149346125105999")
for (i in test_list){ myfunction(i) }
for (j in 1:length(test_list)){ myfunction(test_list[j]) } 

最后两行应该分别产生

[1] "31011"
[1] "105084"
[1] "105999"
于 2016-06-16T11:43:48.503 回答
0

这里不清楚“变量”是否与“值”相同。

如果你所说的变量实际上是你构造的列表中的一个元素,那么我认为上面的 Ilyas 评论可能会解决这个问题。

如果“变量”是工作区中的一个对象,而列表中的元素是您要处理的对象的名称,那么您需要确保使用get. 像这样:

for(i in ls()){
    cat(paste(mode(get(i)),"\n") )
}

ls()返回对象名称列表。上面的循环遍历它们,使用get它们来获取正确的对象。从那里,你可以做你想做的处理(在上面的例子中,我只是打印了对象的模式)。

希望这会有所帮助。

于 2016-06-16T11:43:34.160 回答