r - R 计算条件 = 0 的连续天数
问题描述
我有这个问题:如果我有下一个数据框
time y x PREC Month
1: 2015-01-01 01:00:00 4905.5 660.5 0 1
2: 2015-01-01 01:00:00 4905.5 661.5 0 1
3: 2015-01-01 01:00:00 4905.5 662.5 0 1
4: 2015-01-01 01:00:00 4905.5 663.5 0 1
5: 2015-01-01 01:00:00 4905.5 664.5 0 1
---
21894996: 2015-12-31 22:00:00 4954.5 705.5 0 12
21894997: 2015-12-31 22:00:00 4954.5 706.5 0 12
21894998: 2015-12-31 22:00:00 4954.5 707.5 0 12
21894999: 2015-12-31 22:00:00 4954.5 708.5 0 12
21895000: 2015-12-31 22:00:00 4954.5 709.5 0 12
我想在我的数据框中添加一个新列,该列计算连续天数,条件是:如果“PREC”等于0,则计算连续天数。
我尝试:
setDT(data)
data[, Consec_Days := ifelse(PREC = 0, 1:.N, 0L), by = rleid(PREC = 0)]
但不起作用...
有任何想法吗?
非常感谢您!
解决方案
你可以试试 -
library(data.table)
data <- data.frame(row = 1:10, PREC = c(0, 0, 0, 1, 1, 0, 0, 0, 0, 1))
setDT(data)
data[, Consec_Days := seq_len(.N),rleid(PREC == 0)]
data[PREC != 0, Consec_Days := NA]
data
# row PREC Consec_Days
# 1: 1 0 1
# 2: 2 0 2
# 3: 3 0 3
# 4: 4 1 NA
# 5: 5 1 NA
# 6: 6 0 1
# 7: 7 0 2
# 8: 8 0 3
# 9: 9 0 4
#10: 10 1 NA
推荐阅读
- python-3.x - 重命名文件以反映句子大小写的适当方法是什么?
- curl - 将 CURL 形式的发布请求翻译成 Ktor
- mongodb - 如何使用具有复杂规则的 Mongo 唯一索引
- c++ - 用零值初始化二维向量
- stata - 通过改变具有固定效应的估计值来预测 yhat
- wordpress - 如何使用functions.php(Wordpress / Woocommerce)删除内联样式
- r - 使用 R 的过程中连续阶段之间的连续事件
- flutter - 小部件打开速度快于键盘关闭速度
- azure - 主/暂存 Azure Sql Server 数据库和切换停机时间
- r - 计算对数和平均值,将结果添加到 R 中的数据集