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

R语言中如何合并客户详情表与购买行为表生成新表?

在R中合并客户详情与购买行为表

首先确保你已经安装并加载tidyverse包(包含数据处理常用的dplyr和tidyr):

install.packages("tidyverse")
library(tidyverse)

1. 模拟你的两个表格(对应你提供的表结构)

根据你给出的表样式,先模拟示例数据:

# 客户详情表
customer_df <- tibble(
  customer_id = c(1, 2, 3),
  gender = c("Male", "Female", "Male"),
  age = c(25, 30, 40)
)

# 客户购买行为表
purchase_df <- tibble(
  customer_id = c(1, 1, 2, 3),
  purchase_date = as.Date(c("2023-01-05", "2023-02-10", "2023-01-15", "2023-03-02")),
  amount = c(100, 200, 150, 300)
)

2. 处理购买行为表并合并

我们需要先把购买行为的长表转成宽表(每个客户一行,对应多次购买的日期和金额),再和客户详情表合并:

# 对购买表按客户分组,给每个购买记录编号,再转宽
purchase_wide <- purchase_df %>%
  group_by(customer_id) %>%
  mutate(purchase_num = paste0("purchase_", row_number())) %>% # 生成购买序号
  ungroup() %>%
  pivot_wider(
    id_cols = customer_id,
    names_from = purchase_num,
    values_from = c(purchase_date, amount), # 将日期和金额分别转成多列
    names_sep = "_" # 列名用下划线分隔
  )

# 合并客户详情表和处理后的购买表
final_df <- customer_df %>%
  left_join(purchase_wide, by = "customer_id")

运行后final_df就是你想要的输出格式,每个客户一行,包含基本信息和所有购买记录的日期、金额。

结果示例

最终表格结构如下:

customer_idgenderagepurchase_date_purchase_1purchase_date_purchase_2amount_purchase_1amount_purchase_2
1Male252023-01-052023-02-10100200
2Female302023-01-15NA150NA
3Male402023-03-02NA300NA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:35:23