mysql - 如何根据前一行在接下来的几行中插入值
问题描述
我有一张这样的桌子
Id A B
1 11 event1
2 12 event2
3 00 event1
4 00 event2
5 11 event1
6 00 event2
7 00 event3
8 13 event1
我想从以前的值更改 00 。输出将如下所示
Id A B
1 11 event1
2 12 event2
3 12 event1
4 12 event2
5 11 event1
6 11 event2
7 11 event3
8 13 event1
有没有办法在 R 或 MySQL 中做到这一点。谢谢
解决方案
这是在 R 中执行此操作的单行代码。基本上,我们将 0 替换为NA
并使用zoo::na.locf()
最后一个非 NA 值填充,即
transform(d1, A = zoo::na.locf(replace(A, A == 0, NA)))
这使,
Id A B 1 1 11 event1 2 2 12 event2 3 3 12 event1 4 4 12 event2 5 5 11 event1 6 6 11 event2 7 7 11 event3 8 8 13 event1
作为@G。Grothendieck 指出,您的A
变量似乎是一个字符。如果是这样的话,
transform(d1, A = na.locf0(replace(A, A == "00", NA)))
推荐阅读
- javascript - 如何重新初始化引导工具提示,以便在使用 i18n 更改语言时翻译文本?
- python - Python 2 到 Python 3:脚本无法正确执行
- python - 如何更好地实现用户操作历史?
- python - Matplotlib 条形图 - 类似于堆叠的叠加条形图
- spring-boot - 会话超时后提交值时如何处理表单值?
- css - Chrome 以 0 的净旋转使文本模糊,但我无法将其复制到环境之外
- awk - 如何使用 awk 解决日期过滤器的问题
- database - 连接sequoiadb时出错(error: -15)
- swift - 如何在通过 Firebase (Swift) 创建用户之前检查电子邮件是否已在使用以及电子邮件格式是否错误
- django - Django Rest Auth - 社交视图的自定义注册逻辑