You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言使用dplyr将数据框指定行替换为新数据框数据的实现方法

解决方案

你需要替换mydata中2021年9月15、16日的全量小时数据,用dplyr实现有两种常用方案,按需选择即可。

方案1:全量替换指定日期数据(适配你的场景,新数据覆盖两天全小时记录)

这个方案操作简单无冗余,适合当前newmydata已经包含两天完整48条小时粒度记录的场景:

# 先加载依赖包
library(dplyr)
library(lubridate)

# 处理逻辑:先删除旧数据中对应日期的记录,再拼接修正数据
mydata_updated <- mydata %>%
  # 过滤掉9月15、16日的旧数据
  filter(!datex %in% ymd(c("2021-09-15", "2021-09-16"))) %>%
  # 拼接修正后的新数据
  bind_rows(newmydata)

方案2:按主键匹配更新(适配新数据仅包含部分需要修正的小时记录的场景)

这个方案不需要提前删除旧数据,会自动匹配相同主键的行完成更新,未匹配的行保持不变:

mydata_updated <- mydata %>%
  rows_update(
    y = newmydata,
    # 指定匹配主键:日期、小时、门店三个字段共同确定唯一一条小时销售记录
    by = c("datex", "hourx", "store")
  )

结果验证

你可以用下面的代码确认替换是否成功:

# 统计相邻日期的记录数,15、16日应该各有24条小时记录
mydata_updated %>%
  filter(datex %in% ymd(c("2021-09-14", "2021-09-15", "2021-09-16", "2021-09-17"))) %>%
  group_by(datex) %>%
  summarise(小时记录数 = n())

内容的提问来源于stack exchange,提问作者Faryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:15:03