2017-05-23 80 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向量,其中一些名字是變量。