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

多条件下不同数据集单列相减实现:匹配日期后按小时条件计算CO2差值

双数据集匹配计算方案

实现逻辑

  • 统一两个数据集的日期字段格式与命名,确保匹配准确性
  • 按日期字段关联两个数据集
  • 筛选满足data1小时 ≤ data2小时的匹配结果
  • 计算CO2差值:data1的CO2值 - data2的CO2值

R语言实现代码

tidyverse(dplyr)版本(代码更易读)

# 加载依赖包
library(dplyr)

# 可选:统一日期格式,避免字符串匹配错误
data1$date <- as.Date(data1$date, format = "%m/%d/%Y")
data2$Date <- as.Date(data2$Date, format = "%m/%d/%Y")

# 关联并计算结果
result <- data1 %>%
  inner_join(data2, by = c("date" = "Date"), suffix = c("_d1", "_d2")) %>%
  filter(Hour_d1 <= Hour_d2) %>%
  mutate(CO2_diff = CO2_d1 - CO2_d2)

base R版本(无需安装额外包)

# 可选:统一日期格式
data1$date <- as.Date(data1$date, format = "%m/%d/%Y")
data2$Date <- as.Date(data2$Date, format = "%m/%d/%Y")

# 关联数据集
merged_df <- merge(data1, data2, by.x = "date", by.y = "Date", suffixes = c("_d1", "_d2"))
# 筛选符合条件的行
filtered_df <- merged_df[merged_df$Hour_d1 <= merged_df$Hour_d2, ]
# 计算差值
filtered_df$CO2_diff <- filtered_df$CO2_d1 - filtered_df$CO2_d2

说明

  • 使用inner_join/merge默认返回两个数据集日期完全匹配的行,如果需要保留data1的所有行,可将inner_join改为left_join,或在merge中添加参数all.x = TRUE
  • suffix参数用来区分两个数据集重名的Hour、CO2字段,避免关联后字段冲突
  • 最终结果中的CO2_diff字段就是所需的计算值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 19:15:02