【问题标题】:Remove names from named vector and get only the values从命名向量中删除名称并仅获取值
【发布时间】: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)

标签: r vector flatten


【解决方案1】:

您只想从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

【讨论】:

    【解决方案2】:

    有一个上面没有涵盖的用例:

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

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

    unlist(unname(tmp))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-25
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多