Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove names from named vector and get only the values

Tags:

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?

like image 346
sertsedat Avatar asked Nov 07 '18 16:11

sertsedat


People also ask

How do I remove a name from a vector file?

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).

How do I remove a name from a list?

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.


2 Answers

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 
like image 106
Rich Scriven Avatar answered Oct 02 '22 12:10

Rich Scriven


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)) 
like image 40
peter2108 Avatar answered Oct 02 '22 13:10

peter2108