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

如何为多类型DataFrame按season/daytype匹配添加n列(长度不同)

在R中按season和daytype匹配合并两个分组DataFrame

需求说明

现有两个分组DataFrame:

  • 第一个DataFrame(记为df1)包含type、season、daytype、SeasAV字段,每个season+daytype组合对应3条不同type的记录
  • 第二个DataFrame(记为df2)包含season、daytype、n字段,每个season+daytype对应唯一的n值

需要将df2中的n列按season和daytype匹配,填充到df1的对应记录中。


实现方法

方法1:使用dplyr的left_join

依赖tidyverse系列的dplyr包,是直观的tidy风格实现:

library(dplyr)

# 按season和daytype匹配合并
result_df <- df1 %>%
  left_join(df2, by = c("season", "daytype"))

left_join会自动根据指定的两个键(season和daytype)匹配记录,将df2的n列添加到df1中,每个season+daytype组合对应的3条type记录都会填充对应的n值,同时保留原分组结构。

方法2:使用base R的merge函数

无需额外包,用base R原生函数即可实现:

# 按season和daytype匹配,保留df1所有记录
result_df <- merge(df1, df2, by = c("season", "daytype"), all.x = TRUE)

all.x = TRUE参数确保保留df1的全部记录,匹配后自动为符合条件的行填充n值,效果与dplyr方法一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:51:05