【发布时间】:2021-06-06 01:41:38
【问题描述】:
我希望得到一些帮助来计算温度与特定日期一样冷的时间。
因此,在下面的示例数据框中,对于第一个记录 (01/07/2000),上一次与此 (-1) 一样冷的时间是 2000 年 1 月 1 日(大约 182 天前)。
对于第二个记录,(01/06/2000)上一次冷(2 度)是上个月(01/05/2000)实际上更冷(1 度)(所以大约 30几天前)。
df <- data.frame(date=as.Date(c("01/07/2000", "01/06/2000", "01/05/2000",
"01/04/2000", "01/03/2000", "01/02/2000",
"01/01/2000"), "%d/%m/%Y"),
temperature =c(-1, 2, 1, 0, 1, 1, -1))
我曾尝试修改此方法 (Calculate days since last event in R),但在计算每周时发现它变得笨拙。
您知道如何计算每周天气这么冷的天数吗?非常感谢您的帮助。
【问题讨论】:
-
data.table非 equi 连接在这里很方便:df[ , prev_date := df[.SD, on = .(date < date, temperature <= temperature), i.date - x.date, mult = "first"]]。这也可以很容易地按组完成。 -
请在下面查看我的更新答案。
标签: r dataframe time intervals