从命名向量中删除名称并仅获取值

Remove names from named vector and get only the values

我有一个像下面这样的向量

tmp <- c(a=1, b=2, c=3)

a b c
1 2 3

我想展平这个向量只得到 1, 2, 3.

我试过 unlist(tmp) 但它仍然给我同样的结果。

如何有效地实现这一目标?

您只想从 tmp 中删除 names 属性。有多种方法可以做到这一点。

你可以unname它。

unname(tmp)
# [1] 1 2 3

或者使用一种非常常用的方法来删除名称,将它们设置为 NULL

names(tmp) <- NULL

或者用as.vector去除属性。

as.vector(tmp)
# [1] 1 2 3

或者在没有名称的情况下重新连接它。

c(tmp, use.names=FALSE)
# [1] 1 2 3

或使用setNames.

setNames(tmp, NULL)
# [1] 1 2 3

上面没有涵盖的用例:

tmp <- c(1,2,3)
names(tmp) <- c("a","b","c")

在这种情况下,您需要同时使用:

unlist(unname(tmp))