首页 > 解决方案 > 获得系列中的第一场比赛,R

问题描述

我有向量包含 1 和 0

a <- c(0,0,1,1,1,1,0,0,0,0,0,1,0,0,1,1,1,0)

我需要触发,当我获得第一个 1 时,当我在 0 之后再次获得 1 时,需要再次触发。

也就是说,当我遇到第 1 组时,我需要用某种触发器标记该组中的第一个 1。组始终分离为 0。

最终结果应如下所示:

NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, 1, NA, NA, NA

标签: r

解决方案


base R基于差异的索引解决方案可以是:

#Data
a <- c(0,0,1,1,1,1,0,0,0,0,0,1,0,0,1,1,1,0)
index <- c(0,diff(a))
a[which(index!=1)] <- NA

输出:

a
 [1] NA NA  1 NA NA NA NA NA NA NA NA  1 NA NA  1 NA NA NA

推荐阅读