r - 如何将向量中的值与 r 中的前后值进行匹配?

标签 r

我试图根据向量中焦点值之前或之后的一个元素值来识别不匹配的值。有没有想过怎么做?

比方说,我有一个向量: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/

相关文章:

r - tagAssert 创建一个 Shiny 的仪表板时出错

r - 在嵌套数据框中,将信息从一个列表列传递到另一列中应用的函数

r - 优化网络邻接矩阵创建功能

r - 如何使用 R 计算多个 lon lat 向量之间的距离

使用 foreach 注册 PSOCK 集群 - R 2.14

r - 如何在 "modelerData"节点中正确制作 "modelerDataModel"和 "Extension Transform (R syntax)"添加多个列

r - 绘制 geom_point 和 geom_line

r - 在跨设备和平台(尤其是PDF)的R图形中使用Unicode 'dingbat-like'字形

r - 带有列对的 pivot_longer

r - 如何在ggplot2图例中包含黄土线?