我在R中编写了一个循环。代码应该通过列表中定义的变量列表,然后为每个变量执行一个函数。
问题1 - 我无法遍历变量列表
问题2 - 我需要将值中的每个输出插入Mongo DB
以下是列表的示例:
121715771201463_626656620831011
121715771201463_1149346125105084
基于此值 - 我正在运行代码,我希望将此输出插入到MongoDB中。现在只插入第一个值及其相应的输出
test_list< - C(" 121715771201463_626656620831011"" 121715771201463_1149346125105084"" 121715771201463_1149346125105999&#34)
for(i in test_list) { // myfunction // mongo.insert(mongo,DBNS,i) }
我只能选择第一个值的值而不是列表中的全部值
感谢任何帮助。
答案 0 :(得分: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"
答案 1 :(得分:0)
目前尚不清楚“变量”是否与“值”相同。
如果你所说的变量实际上是你构建的列表中的一个元素,那么我认为上面的Ilyas评论可以解决这个问题。
如果“variable”是工作空间中的对象,而列表中的元素是您要处理的对象的名称,则需要确保使用get
。像这样:
for(i in ls()){
cat(paste(mode(get(i)),"\n") )
}
ls()
返回对象名称列表。上面的循环遍历它们,在它们上使用get
来获取正确的对象。从那里,你可以进行你想要做的处理(在上面的例子中,我只是打印了对象的模式)。
希望这会有所帮助。