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
We can add names to vectors using two approaches. The first uses names() to assign names to each element of the vector. The second approach is to assign names when creating the vector. We can also add comments to vectors to act as a note to the user.
We use names() function for giving the name of vector element.
We can assign names to vector members. For example, the following variable v is a character string vector with two members. We now name the first member as First, and the second as Last. Then we can retrieve the first member by its name.
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))
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With