NAME<-"a";
i<-2;
a<-c(0,1);
如何更改向量NAME的第i个元素(i是变量:整数)(NAME是变量:string)?
as.name(NAME)[i] doesnt work
答案 0 :(得分:1)
我强烈建议您重新考虑您的代码;通常不需要这种类型的操作,通常有更好的,更“类似R”的方法。但
assign(NAME, '[<-'(get(NAME),i,5))
或者
eval(substitute(x[i]<-5, list(x=as.name(NAME))))
可行。这会将元素2更改为5.更好的设计可能是让您想要动态更改的向量位于命名列表中。
dd <- list(
a = c(0,1)
)
NAME<-"a";
i<-2;
dd[[NAME]][i]<-5
dd$a