我试图根据向量中焦点值之前或之后的一个元素值来识别不匹配的值。有没有想过怎么做?
比方说,我有一个向量:x<-c(1,1,2,1,3,3)
.如 element[i]
与项目 i
之前或之后的元素匹配( element[i-1]
和 element[i+1]
)。如果有匹配项 element[i]
应等于"is",否则应等于“否”。x<-c(1,1,2,1,3,3)
的预期输出应该是 c("yes","yes","no","no","yes","yes")
.
最佳答案
使用 rle()
以识别相等值的运行。 lengths == 1
意味着在当前值之前或之后没有相等的值。
with(rle(x), rep(ifelse(lengths == 1, "no", "yes"), lengths))
# [1] "yes" "yes" "no" "no" "yes" "yes"
编辑:更简洁的版本(感谢 @dww 的 评论)
with(rle(x), rep(lengths != 1, lengths))
# [1] TRUE TRUE FALSE FALSE TRUE TRUE
关于r - 如何将向量中的值与 r 中的前后值进行匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54132639/