2017-05-23 81 views
3

我想向元素V添加一个元素(如100),并将变量x的值用作新元素的名称。我知道它可以这样做:如何将名称元素添加到变量名称为R的向量

V = c(V, 100) 
names(V)[length(V)] = x 

但我正在寻找一个简单的单线解决方案,如果有的话。我想:

V = c(V, as.name(x)=100) 

V = c(V, eval(x)=100) 

但那些不工作。

+0

可能的重复https://stackoverflow.com/questions/11784660/assign-names-to-vector-entries-without-assigning-the-vector-a-variable-name – akrun

回答

2

我们可以通过使用setnames

setNames(c(V, 100), c(names(V), x)) 

添加一个例子做到这一点,

V <- c(a = 1, b=2) 
V 
#a b 
#1 2 
x <- "c" 
setNames(c(V, 100), c(names(V), x)) 
# a b c 
# 1 2 100 

或者作为@thelatemail建议我们只能附加元件上工作

c(V, setNames(100,x)) 
+2

可能更简单 - 'c(V, setNames(100,X))' – thelatemail

0

Ronak沙阿的回答很好,但后来我发现了一个更简单的方法:

V [X] < - 100

我要发布一个新的相关和非常类似的问题 - 如何定义的R向量,其中一些名字是变量。