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?
To assign names to the values of vector, we can use names function and the removal of names can be done by using unname function. For example, if we have a vector x that has elements with names and we want to remove the names of those elements then we can use the command unname(x).
There are actually a couple of ways to delete a name from a list. Right-click (Control-click) on the name to be deleted, and select Remove Person From List from the context menu. Click on the name (left click) to select it, and then click on the '-' button on the bottom-right of the screen.
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))
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