2016-07-14 12 views
-1

Ich habe 4 Variablen, die 4 Sammlungen darstellt: zk1, zk2, zk3, zk4. Unter Verwendung von Mongolite:für Schleife in r; Zahl am Ende der Variablennamen

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")) 
} 

Nun, in den nächsten Stufen möchte ich Variablen bei der Anwendung einer Methode durchlaufen. Ich habe verschiedene Möglichkeiten ausprobiert, aber es gibt immer einen Fehler zurück. Zum Beispiel:

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

gibt einen Fehler zurück:

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

Ich habe andere Lösungen versucht, aber ohne Erfolg.

Antwort

0

Versuchen Sie eval(parse(text = paste0(name,"$count"))). Sie sollten überprüfen, ob sich name in Ihrer Umgebung befindet und Sie auf realnamehere$count zugreifen können. Ich nehme an, es ist keine Funktion count()

+0

Ich ist eine Methode count(). Wenn ich Ihre Lösung versuche, gibt es mir die Beschreibung der Funktion. – Mislav

+2

Ich denke, es gibt ein Missverständnis über Variablen und Funktionen. Aber ich kann Ihnen nur mit einem reproduzierbaren Beispiel helfen: Bitte lesen Sie [(1)] (http://stackoverflow.com/help/how-to-ask) wie stelle ich eine gute Frage, [(2)] (http: // stackoverflow.com/help/how-to-ask) : //stackoverflow.com/help/mcve) Wie erstellt man ein MCVE sowie [(3)] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible -beispiel # answer-5963610) wie man ein minimales reproduzierbares Beispiel in R zur Verfügung stellt. – Christoph