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

34

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

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

a b c
1 2 3

我想要将这个向量压平,只得到1, 2, 3

我尝试过使用unlist(tmp),但它仍然给我相同的结果。

如何高效地实现这一点?


2
尝试使用as.numeric(tmp) - mickey
2个回答

76

你只是想从 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

4
上述内容未覆盖以下用例:
tmp <- c(1,2,3)
names(tmp) <- c("a","b","c")

在这种情况下,您需要同时使用以下两个内容:
unlist(unname(tmp))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接