I have a vector like below
tmp <- c(a=1, b=2, c=3)
a b c
1 2 3
I want to flatten this vector to get only 1, 2, 3
.
I tried unlist(tmp)
but it still gives me the same result.
How to achieve that efficiently?
I have a vector like below
tmp <- c(a=1, b=2, c=3)
a b c
1 2 3
I want to flatten this vector to get only 1, 2, 3
.
I tried unlist(tmp)
but it still gives me the same result.
How to achieve that efficiently?
You just want to remove the names
attribute from tmp
. There are a number of ways to do that.
You can unname
it.
unname(tmp)
# [1] 1 2 3
Or use a very common method for removing names, by setting them to NULL
.
names(tmp) <- NULL
Or strip the attributes with as.vector
.
as.vector(tmp)
# [1] 1 2 3
Or re-concatenate it without the names.
c(tmp, use.names=FALSE)
# [1] 1 2 3
Or use setNames
.
setNames(tmp, NULL)
# [1] 1 2 3
There is a use case that the above does not cover:
tmp <- c(1,2,3)
names(tmp) <- c("a","b","c")
In this case you need to use both:
unlist(unname(tmp))
© 2022 - 2024 — McMap. All rights reserved.
as.numeric(tmp)
– Fleuron