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

在R语言中合并两个数据框:重复一个数据框的值填充另一个

R语言数据框合并解决方案

你可以通过以下两种方式实现需求:

方法一:Base R(无需额外包)

# 重复df1的每一行,重复次数等于df2的行数(示例中为50)
df1_repeated <- df1[rep(seq_len(nrow(df1)), each = nrow(df2)), ]
# 将df2的所有列按顺序堆叠成一个数值向量
df2_stacked <- unlist(df2, use.names = FALSE)
# 合并为最终数据框
result_df <- cbind(df1_repeated, value = df2_stacked)

方法二:Tidyverse工具包(代码更直观)

先确保安装并加载dplyr和tidyr:

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

然后执行以下代码:

# 将df2转换为长格式,提取所有数值
df2_long <- df2 %>% 
  pivot_longer(cols = everything(), names_to = NULL, values_to = "value")

# 重复df1的每一行,次数匹配df2的行数
df1_repeated <- df1 %>% slice(rep(row_number(), each = nrow(df2)))

# 合并两个数据框
result_df <- bind_cols(df1_repeated, df2_long)

两种方法最终都会生成一个4000行(80*50)的新数据框,其中前3列是重复后的df1标签,第4列是df2所有列堆叠后的数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 11:17:13