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

如何在R中将一列数据合并到另一列并生成对应新观测行

R数据框列转行合并实现方案

方法1:tidyverse 实现(代码更简洁)

# 加载依赖包
library(dplyr)

# 构造原始测试数据集
df <- data.frame(
  id = c(1,1,2,2),
  type = c(1,2,1,2),
  days = c(10,3,2,6),
  type0 = c(10,5,6,8)
)

# 数据处理
df_result <- bind_rows(
  # 保留原始type非0的观测行
  df %>% select(id, type, days),
  # 生成type=0的新观测行
  df %>% transmute(id = id, type = 0, days = type0)
) %>% 
  # 若需要匹配示例输出的无排序逻辑可删除本行代码
  arrange(id, type)

方法2:base R 实现(无需依赖第三方包)

# 构造原始测试数据集
df <- data.frame(
  id = c(1,1,2,2),
  type = c(1,2,1,2),
  days = c(10,3,2,6),
  type0 = c(10,5,6,8)
)

# 生成type=0的子数据集
df_type0 <- data.frame(
  id = df$id,
  type = 0,
  days = df$type0
)

# 合并数据集
df_result <- rbind(df[, c("id", "type", "days")], df_type0)
# 若需要匹配示例输出的无排序逻辑可删除本行代码
df_result <- df_result[order(df_result$id, df_result$type), ]

两种方法最终得到的数据集结构完全符合要求,若不需要调整行的展示顺序,删除对应排序代码即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:54:02