使用string和int变量引用vector元素

时间:2016-02-26 23:31:48

标签: r

NAME<-"a";
i<-2;
a<-c(0,1);

如何更改向量NAME的第i个元素(i是变量:整数)(NAME是变量:string)?

as.name(NAME)[i] doesnt work 

1 个答案:

答案 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