根据其他数据帧将数字向量的名称()从一个变量更改为另一个变量
Change names() of a numeric vector from one variable to another based on other dataframe
我有一个像这样的数字向量:
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
或者
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))
我有一个像这样的数字向量:
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
或者
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))