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

2

5

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
Hartwell answered 23/5, 2017 at 22:57 Comment(0)
H
3

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.

Hartwell answered 24/5, 2017 at 17:46 Comment(0)
D
5

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))
Decolorize answered 23/5, 2017 at 23:5 Comment(1)
potentially simpler - c(V, setNames(100,x))Weaponeer
H
3

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.

Hartwell answered 24/5, 2017 at 17:46 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.