我想在空中添加元素到空列表。列表中的每個元素應該在一組變量之後自動命名,這些變量的值會有所不同。基於變量名稱的名稱列表元素R
但是,我似乎無法找到一種方法來即時命名列表元素而不會出錯。考慮下面的例子:
L <- list()
var1 <- "wood"
var2 <- 1.0
var3 <- "z4"
varname <- paste(var1, as.character(var2), var3, sep="_")
# This works fine:
L$"wood_1_z4" <- c(0,1)
L$"wood_1_z4"
0 1
# This doesn't!!
L$paste(var1, as.character(var2), var3, sep="_") <- c(0,1)
Error in L$paste(var1, as.character(var2), var3, sep = "_") <- c(0, 1) :
invalid function in complex assignment
# Ths doesn't either ...
L$eval(parse(text = "varname")) <- c(0,1)
Error in L$eval(parse(text = "varname")) <- c(0, 1) :
target of assignment expands to non-language object
有沒有辦法做到這一點?
使用'[[':'L [[paste(var1,as.character(var2),var3,sep =「_」)]] < - c(0,1)' – nicola
如果賦值到'名字(L)'? –
'$'在右側沒有做任何評估,因此錯誤。 –