我有两个向量,说:
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")
Run Code Online (Sandbox Code Playgroud)
所以那x是
a b c d e f
2 3 5 7 9 11
Run Code Online (Sandbox Code Playgroud)
并且y是
b d f
33 44 55
Run Code Online (Sandbox Code Playgroud)
我想x用y具有相同名称的值替换其中的值,以便结果将是新的x:
a b c d e f
2 33 5 44 9 55
Run Code Online (Sandbox Code Playgroud)
我敢肯定这已经在某个地方得到了回答,但是我找不到。
您可以将的名称y用作的子集x,然后替换为y。
x[names(y)] <- y
x
# a b c d e f
# 2 33 5 44 9 55
Run Code Online (Sandbox Code Playgroud)
另一个选择是replace(),它基本上与上面的操作相同,但是返回结果并且不更改x。
replace(x, names(y), y)
# a b c d e f
# 2 33 5 44 9 55
Run Code Online (Sandbox Code Playgroud)