【问题标题】:Change names() of a numeric vector from one variable to another based on other dataframe根据其他数据框将数值向量的名称()从一个变量更改为另一个变量
【发布时间】:2015-04-02 18:05:35
【问题描述】:

我有一个像这样的数字向量:

S1 S2 S3 S4
.1 .5 .3 .9

其中 S1、S2... 是 .1... 的名称 我还有另一个 df 列,如下所示:

sub.id State
 S1    CA  
 S2    OR
 S2    OR
 S4    CA
 S3    CO

我想用基于数据框的等效变量替换第一个向量中的名称。

【问题讨论】:

    标签: r names


    【解决方案1】:

    试试

     names(v1) <- setNames(df$State, df$sub.id)[names(v1)]
     v1
     # CA  OR  CO  CA 
     #0.1 0.5 0.3 0.9 
    

    或者

      names(v1) <- df$State[match(names(v1), df$sub.id)]
    

    数据

     v1 <- structure(c(0.1, 0.5, 0.3, 0.9), .Names = c("S1", "S2", "S3","S4"))
    
     df <- structure(list(sub.id = c("S1", "S2", "S2", "S4", "S3"),
      State = c("CA", 
     "OR", "OR", "CA", "CO")), .Names = c("sub.id", "State"), 
     class = "data.frame", row.names = c(NA, -5L))
    

    【讨论】:

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