r - 使用 dplyr r 在列中更改值时提取行
问题描述
每次 b 发生变化时,我都会尝试提取行:
a b
1 1 A
2 4 A
3 5 A
4 3 B
5 3 B
6 2 B
7 4 B
8 6 A
9 2 A
10 4 C
11 1 C
所以我期待的结果是:
a b
1 1 A
2 3 B
3 6 A
4 4 C
我想在 dplyr 中使用 lag 函数来提取 b 的先前值不同但无法做到的行...
任何帮助都会非常感激!!
解决方案
一种选择可能是:
df %>%
group_by(rleid = with(rle(b), rep(seq_along(lengths), lengths))) %>%
slice(1)
a b rleid
<int> <chr> <int>
1 1 A 1
2 3 B 2
3 6 A 3
4 4 C 4
推荐阅读
- selenium-webdriver - 通过 test.xml 执行多个 tets 案例时,在电子邮件字段中输入带有电子邮件地址的 Somtimes 密码
- c - 如何正确调试 Windows 内核驱动程序?
- angular - 在 Angular 指令上测试窗口调整大小 - 调整大小事件后未定义窗口尺寸
- git - 如何获取与特定版本相关的提交列表?
- http - 当 servlet 完成后过滤器抛出异常时会发生什么?
- swift - Info.plist 字典到 Enum:String 类型的字典
- azure - Azure Web 应用 github 持续部署未完成
- c - 用 C 计划和执行一个周期性任务系统
- swift - Realm.rx.delete() 和 Realm.rx.add() 使用相同的对象崩溃
- java - 如何检查我的数组列表中是否有不在哈希图中的元素?