假设我有一个包含重复名称的向量:
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)]
。 - akrun