How add named element to R vector with name from a variable

5.9k Views Asked by At

I want to add an element, say 100, to vector V and use the value of variable x as the new element's name. I know it can be done like this:

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

but I'm looking for an easy single-line solution, if there is one. I tried:

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

and

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

but those don't work.

Okay, discovered best way:

V[x] = 100
2

There are 2 best solutions below

0
On BEST ANSWER

Ronak Shah's answer worked well, but then I discovered an even simpler way:

V[x] <- 100

I'm going to post a new related and very similar question - How to define an R vector where some names are in variables.

1
On

We can do this by using setnames

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

Adding an example,

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 

Or as @thelatemail suggested we could only work on the additional element

c(V, setNames(100,x))