【问题标题】:How can I create a vector from two others, using one for the labels and one for the values?如何从其他两个向量中创建一个向量,一个用于标签,一个用于值?
【发布时间】:2021-10-20 07:55:07
【问题描述】:

假设我有一个向量 a = c("Label 1", "Label 2") 和一个向量 b = c(1, 2)。我想知道是否有一种优雅的方法可以从这两个中创建一个向量c = c("Label 1" = 1, "Label 2" = 2)。不幸的是,设置 c <- c(a = b) 并不能完成这项工作 - 但是有没有办法用一行代码来做到这一点?

【问题讨论】:

    标签: r vector


    【解决方案1】:

    像这样使用setNames。没有使用任何包。

    (rlang包有一个set_names函数,类似,是purrr导入的。)

    setNames(b, a)
    

    给予:

    Label 1 Label 2 
          1       2 
    

    setNames的来源是这样的:

    > setNames
    function (object = nm, nm) 
    {
        names(object) <- nm
        object
    }
    <bytecode: 0x000000001044d4b0>
    <environment: namespace:stats>
    

    【讨论】:

      【解决方案2】:

      您可以更改namesb -

      names(b) <- a
      b
      
      #Label 1 Label 2 
      #      1       2 
      

      【讨论】:

        【解决方案3】:

        我们可以使用names&lt;-

        `names<-`(b, a)
        

        【讨论】:

          猜你喜欢
          • 2020-08-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-26
          • 1970-01-01
          • 1970-01-01
          • 2016-08-18
          • 2021-06-02
          相关资源
          最近更新 更多