【发布时间】:2017-08-22 14:32:46
【问题描述】:
假设我有一个名称重复的向量:
x <- c(a=1, b=2, a=3, c=4, c=5, b=1, d=1)
我想查找和更改命名元素。如果我定义
ElementsToChange <- c("a","b","c")
ChangeTo <- c(9,8,7)
如果我这样做,我想将所有名为“a”的元素更改为 9,所有名为“b”的元素更改为 8,等等:
x[ElementsToChange] <- ChangeTo
这只会更改第一个(而不是所有)元素。
我如何以一种简单而优雅的方式改变一切?
【问题讨论】:
-
另一个是
v1 <- setNames(setNames(ChangeTo, ElementsToChange)[names(x)], names(x));v1[is.na(v1)] <- x[is.na(v1)] -
@Frank 我的意思是“嘿,这个问题有帮助”;-)