首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对r中的2个日期序列之间的信息求和?

如何对r中的2个日期序列之间的信息求和?
EN

Stack Overflow用户
提问于 2020-10-01 06:52:56
回答 1查看 31关注 0票数 1

我有一个数据框,上面有像这样的降水日期。

代码语言:javascript
复制
df_pp =  data.frame(Date = c("2020-04-01 11:25:25","2020-04-01 11:27:85","2020-04-02 05:23:25",
                    "2020-04-02 05:24:25","2020-04-25 11:52:25","2020-04-25 11:53:25"), PP = 0.2)

我还有另一个像这样的df,一个月比这个例子快了5分钟。

代码语言:javascript
复制
df = data.frame(Date = format(seq.POSIXt(as.POSIXct("2020-04-01"), as.POSIXct("2020-04-30"), 
                       by = "5 min") ,"%Y-%m-%d %H:%M:%S", tz="GMT"), PP = 0)

我想要将df_PP中前两个日期的PP相加5分钟,例如,df_pp中的第一个PP小时是"2020-04-01 11:25:25“和"2020-04-01 11:27:25",我想将该日期的PP值在2020-04-01 11:25:00中的df$PP中求和,但我有大量的日期,因此无法手动设置条件。

你能帮我吗?非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-01 07:09:45

您可以直接在df_pp上使用lubridate包中的舍入函数,而不必担心与第二个数据帧匹配。

将Date列转换为Date Time对象,并使用floor_date()以5分钟间隔向下舍入:

代码语言:javascript
复制
library(lubridate)

df_pp %>% 
  mutate(round_time = floor_date(as.POSIXct(Date), "5 mins")) %>% 
  group_by(round_time) %>% 
  summarise(PP_5min = sum(PP)) %>% 
  ungroup()


  round_time          PP_5min
  <dttm>                <dbl>
1 2020-04-01 11:25:00     0.4
2 2020-04-02 05:20:00     0.4
3 2020-04-25 11:50:00     0.4
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64146830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档