在 r 中反向重命名一个向量

rename a vector in reverse in r

我想重命名与我的向量不匹配的其余变量,但我不知道合适的代码是什么,我添加了一个示例。

example<-c("a","b","c","d","e")
keep<-c("b","c","d")
example[example %in% -keep] <- "vocal"

取反 (!) 而不是 - 以反转逻辑输出,即 TRUE -> FALSE 反之亦然

example[!example %in% keep] <- "vocal"

如果我们想使用-,用which换行得到位置索引,然后使用

example[-which(example %in% keep)] <- "vocal"

但这是错误的,在某些情况下可能会产生意外的输出。例如如果没有匹配项

> keep1 <- c("f", "l")
> which(example %in% keep1)
integer(0)
> -which(example %in% keep1)
integer(0)
> example[-which(example %in% keep1)] <- "vocal"
> example
[1] "a" "b" "c" "d" "e"

这里,其中 none 被改变了,因为 which 没有返回任何元素,这对 -

没有影响