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

如何在R的data.table中将两个分类列合并为新组合列?

在data.table中生成药物组合列(var1_var2格式)

原始数据

library(data.table)
df <- data.table(id=c(1,2,3,4,5,6,7,8,9,10),
                 var1=c(0,4,5,6,99,3,5,5,23,0),
                 var2=c(22,4,6,25,6,70,75,23,24,21))

需求

新增var3列,每个单元格的值为var1与var2用下划线_连接的字符串,用于标识药物组合。

解决方案

利用data.table的原地赋值语法:=,结合字符串拼接函数即可高效实现:

方法1:基础拼接(适用于数值/字符型变量)

# 原地新增var3列,直接拼接
df[, var3 := paste0(var1, "_", var2)]

paste0是paste的简化版,无需额外指定分隔符,直接拼接字符串,适合这种固定分隔符的场景。

方法2:处理因子型变量(若var1/var2为分类因子)

如果var1或var2是因子类型,需先转换为字符型再拼接,避免出现因子的底层编码值:

df[, var3 := paste0(as.character(var1), "_", as.character(var2))]

验证结果

执行上述代码后,df将生成符合要求的var3列,结果如下:

df
#     id var1 var2  var3
#  1:  1    0   22  0_22
#  2:  2    4    4   4_4
#  3:  3    5    6   5_6
#  4:  4    6   25  6_25
#  5:  5   99    6  99_6
#  6:  6    3   70  3_70
#  7:  7    5   75  5_75
#  8:  8    5   23  5_23
#  9:  9   23   24 23_24
# 10: 10    0   21  0_21

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 14:35:34