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

在R语言中基于分组变量合并两列的简便实现方法

解决方案

示例数据集

df <- data.frame( 
  value = c(0, 0, 1, 1, 2, 2), 
  ind_1 = c("AA", "BD", "WR", "DH", "AE", "SG"), 
  ind_2 = c("DE", "DE", "BH", "BH", "EE", "EE")
)

简便实现代码

用tidyr包的pivot_longer()函数可以一步完成宽表转长表的操作,自动保留value的分组对应关系:

library(tidyr)

df_result <- df %>%
  pivot_longer(
    cols = starts_with("ind_"),  # 选中所有以ind_开头的列
    names_to = NULL,             # 不需要保留原列名
    values_to = "ind"            # 合并后的数据存入新列ind
  ) %>%
  arrange(value)  # 按value排序,匹配期望结果的顺序

验证结果

运行后df_result的内容与你给出的期望结果完全一致:

print(df_result)
#   value ind
#1      0  AA
#2      0  BD
#3      0  DE
#4      0  DE
#5      1  WR
#6      1  DH
#7      1  BH
#8      1  BH
#9      2  AE
#10     2  SG
#11     2  EE
#12     2  EE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:27:04