2016-07-14 42 views
-1

我已经创建了代表4个集合的4个变量:zk1,zk2,zk3,zk4。使用mongolite:for loop in r;变量名称末尾的数字

for (i in 1:4) { 
    name <- paste0("zk", i, sep = "") 
    collect <- paste0("zk", i, sep = "") 
    assign(name, mongo(collection = collect, db = "zeko", url = "mongodb://localhost")) 
} 

现在,在接下来的阶段中,我想在应用某些方法时循环变量。我尝试了不同的方式,但它总是返回一个错误。例如:

for (j in 1:length(zk_vector)) { 
    j$count() 
} 

返回一个错误:

Error in j$count : $ operator is invalid for atomic vectors 

我已经尝试过其他解决方案,但没有成功。

回答

0

尝试eval(parse(text = paste0(name,"$count")))。您应该检查name是否在您的环境中,并且您可以访问realnamehere$count。我认为这不是一个函数count()

+0

我是一个方法count()。如果我尝试你的解决方案,它给了我功能的描述。 – Mislav

+2

我认为有一些关于变量和函数的误解。但我只能用一个可重现的例子来帮助你:请阅读[(1)](http://stackoverflow.com/help/how-to-ask)我该如何提出一个好问题,[(2)](http ://stackoverflow.com/help/mcve)如何创建一个MCVE以及[(3)](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible -example#answer-5963610)如何在R中提供一个最小可重现的例子。 – Christoph