r - 在R中合并两个具有不同日期格式的df
问题描述
我有两个数据框,想按日期合并它们。问题是,df1(我想保留的主要 df)每小时观察一次,df2 每天观察一次。我想合并它们,这样如果 df1 一天有多个观察值,我会从 df2 转移一些观察值两次。
示例df:
Time_df1 <- c(ymd_hms("2017-11-28T14:02:00"),
ymd_hms("2017-11-28T18:00:00"),
ymd_hms("2020-08-24T20:30:00"),
ymd_hms("2020-10-01T02:02:00"),
ymd_hms("2021-03-12T23:05:00"))
Measurement_df1 <- c(0.1,0.2, 0.5, 0.8, 0.7)
df1 <- data.frame(Time_df1, Measurement_df1)
Time_df2 <- c(as_date(17498), as_date(18498), as_date(18698))
Measurement_df2 <- c(11, 42, 28)
df2 <- data.frame(Time_df2, Measurement_df2)
目标df:
Measurement_df2 <- c(11, 11, 42, NA, 28)
df_aim <- data.frame(Time_df1, Measurement_df1, Measurement_df2)
解决方案
将时间变量转换为加入前的日期
df1 %>%
dplyr::mutate(Time_df1date = as.Date(Time_df1)) %>%
dplyr::left_join(df2, by = c("Time_df1date" = "Time_df2")) %>%
dplyr::select(-Time_df1date)
推荐阅读
- mysql - MYSQL多列总和
- python - 将html字符串转换为morionette对象python
- jenkins - 我在哪里可以找到詹金斯的时区设置
- python - 在二维 numpy 数组中映射列内容的优化方法
- c++ - 无窗口 RichEdit 控件无法输入表情符号
- android-studio - android studio Build 菜单中不显示“Generate Signed APK”选项
- python - 如何在python中使用硬编码数据将数组的内容转储到预先存在的csv
- r - 具有相同患者 ID 的多个条目:如何使其成为一个条目
- python - 梯度下降优化器会改变我的偏差吗?如果是这样,是学习率吗?
- jquery - 验证消息破坏了我的电子邮件字段