将命名向量中的值替换为R中另一个命名向量的值

时间:2015-10-21 22:42:47

标签: r

我有两个载体,比如说:

x <- c(2, 3, 5, 7, 9, 11)
names(x) <- c("a", "b", "c", "d", "e", "f")
y <- c(33,44,55)
names(y) <- c("b", "d", "f")

以便x

a  b  c  d  e  f 
2  3  5  7  9 11 

y

 b  d  f 
33 44 55 

我想将x中的值替换为y中具有相同名称的值,以便结果适用于新的x

a  b  c  d  e  f 
2 33  5 44  9 55 

我确信这已在某个地方得到解答,但我找不到它。

1 个答案:

答案 0 :(得分:4)

您可以使用y的名称作为x的子集,然后替换为y

x[names(y)] <- y
x
# a  b  c  d  e  f 
# 2 33  5 44  9 55 

另一个选项是replace(),它基本上与上面相同,但返回结果并且不会更改x

replace(x, names(y), y)
# a  b  c  d  e  f 
# 2 33  5 44  9 55