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

使用R将数据框两列内容合并为单列且不生成额外标识列

R实现多列合并为单列(无额外标识列)

你需要的效果是按行合并time1、time2的取值,保留对应id匹配关系,以下是两种常用实现方式:


方法1:基础R实现(无需加载第三方包)

# 构造原始数据
df <- structure(list(id = c(1, 1, 1), time1 = c(10, 20, 30), time2 = c(15, 25, 35)), row.names = c(NA, 3L), class = "data.frame")

# 合并处理
result <- data.frame(
  id = rep(df$id, each = 2), # 每个id对应2个time值,按顺序重复
  time = as.vector(t(df[, c("time1", "time2")])) # 按行提取time1、time2取值拼接
)

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

使用tidyr的pivot_longer函数,直接通过参数控制不生成额外列:

library(tidyr)

result <- df %>%
  pivot_longer(
    cols = c(time1, time2), # 指定要合并的列
    names_to = NULL, # 不生成存储原始列名的额外标识列
    values_to = "time" # 合并后数值列的列名
  )

两种方法输出的结构和你要求的完全一致,不存在多余的列。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 05:54:00