r - 获得系列中的第一场比赛,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
解决方案
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
推荐阅读
- android - 未收到 WifiManager.NETWORK_STATE_CHANGED_ACTION
- android - 使用tomtom位置api android获取用户之间的距离
- sql-server - SQL SERVER 将行转换为列
- symfony - 制作具有多个数据库的实体
- javascript - 'mouseenter' 和 'mouseleave' 事件不断以 div 作为光标触发
- node.js - Firebase云功能http成功向设备发送推送通知,但它落入catch块并出现空错误
- ios - 卡片小部件在 ios 模拟器上最后被切断
- azure - 当服务调用它时恢复天蓝色逻辑应用程序
- python - 麻省理工学院公开课,第 3 讲 - 数学问题
- c# - WPF INotifyDataErrorInfo 突出显示 ListBoxItem