如何使用来自变量的名称将命名元素添加到 R 向量

ted*_*oal 5 r elementname

我想向向量 V 添加一个元素,比如 100,并使用变量 x 的值作为新元素的名称。我知道可以这样做:

V = c(V, 100)
names(V)[length(V)] = x
Run Code Online (Sandbox Code Playgroud)

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

V = c(V, as.name(x)=100)
Run Code Online (Sandbox Code Playgroud)

V = c(V, eval(x)=100)
Run Code Online (Sandbox Code Playgroud)

但那些不起作用。

好的,发现了最好的方法:

V[x] = 100
Run Code Online (Sandbox Code Playgroud)

Ron*_*hah 5

我们可以通过使用来做到这一点 setnames

setNames(c(V, 100), c(names(V), x))
Run Code Online (Sandbox Code Playgroud)

添加一个例子,

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 
Run Code Online (Sandbox Code Playgroud)

或者正如@thelatemail 建议的那样,我们只能处理附加元素

c(V, setNames(100,x))
Run Code Online (Sandbox Code Playgroud)

  • 可能更简单 - `c(V, setNames(100,x))` (2认同)

ted*_*oal 3

Ronak Shah 的答案效果很好,但后来我发现了一个更简单的方法:

V[x] <- 100

我将发布一个新的相关且非常相似的问题 - 如何定义一个 R 向量,其中一些名称位于变量中。