【发布时间】:2019-04-11 03:52:26
【问题描述】:
我有一个像下面这样的向量
tmp <- c(a=1, b=2, c=3)
a b c
1 2 3
我想展平这个向量,只得到1, 2, 3。
我尝试了unlist(tmp),但它仍然给了我相同的结果。
如何有效地实现这一目标?
【问题讨论】:
-
试试
as.numeric(tmp)
我有一个像下面这样的向量
tmp <- c(a=1, b=2, c=3)
a b c
1 2 3
我想展平这个向量,只得到1, 2, 3。
我尝试了unlist(tmp),但它仍然给了我相同的结果。
如何有效地实现这一目标?
【问题讨论】:
as.numeric(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))
【讨论】: