R 基于其他数据帧将数值向量的名称()从一个变量更改为另一个变量

R 基于其他数据帧将数值向量的名称()从一个变量更改为另一个变量,r,names,R,Names,我有一个这样的数值向量: 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 我想用基于数据帧的等效变量替换第一个向量中的名称。试试看 names(v1) <- setNames(df$State, df$sub.id)[names(v1)] v1 # CA OR CO CA #

我有一个这样的数值向量:

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
我想用基于数据帧的等效变量替换第一个向量中的名称。

试试看

 names(v1) <- setNames(df$State, df$sub.id)[names(v1)]
 v1
 # CA  OR  CO  CA 
 #0.1 0.5 0.3 0.9 
名称(v1)
  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))