Siehe unten:
paste("perf.a", "1", sep="")
# [1] "perf.a1"
Was ist, wenn ich einen Wert zuweisen möchte perf.a1
?
Ich habe versucht as.name
, as.symbol
etc., ohne Erfolg:
as.name(paste("perf.a", "1", sep="")) = 5
# Error in as.name(paste("perf.a", "1", sep = "")) = 5 :
# target of assignment expands to non-language object
as.symbol(paste("perf.a", "1", sep="")) = 5
# Error in as.symbol(paste("perf.a", "1", sep = "")) = 5 :
# target of assignment expands to non-language object
noquote(paste("perf.a", "1", sep="")) = 5
# Error in noquote(paste("perf.a", "1", sep = "")) = 5 :
# target of assignment expands to non-language object
Antworten:
Mit
assign
( doc ) können Sie den Wert von perf.a1 ändern:quelle
assign(paste0("perf.a", "1"), 5)
ist ein bisschen ordentlicherSiehe
?assign
.quelle
In meinem Fall funktioniert die Funktion eval () sehr gut. Unten generiere ich 10 Variablen und weise ihnen 10 Werte zu.
quelle
a <- rnorm(1); a - eval(parse(text=paste(a)))
kehrt0
normalerweise nicht zurück .In meinem Fall hatten die von mir erstellten Symbole (Tax1, Tax2 usw.) bereits Werte, aber ich wollte eine Schleife verwenden und die Symbole einer anderen Variablen zuweisen. Die beiden obigen Antworten gaben mir einen Weg, dies zu erreichen. Dies kann bei der Beantwortung Ihrer Frage hilfreich sein, da die Zuweisung eines Werts jederzeit später erfolgen kann.
quelle