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

在R中如何将数据框内的字符串变量按下划线拆分为两个新变量

解法1:tidyr包实现(代码简洁易维护)

首先安装加载tidyr包,调用separate函数直接完成列拆分:

# 未安装包先执行 install.packages("tidyr")
library(tidyr)

# 你的原始数据
olddf <- data.frame('Z' = c('Z1','Z2','Z3'), 
                    'var' = c('A_H','A_H', 'B_J'))

# 拆分生成新数据框
newdf <- separate(
  data = olddf,
  col = var, # 要拆分的列
  into = c("var1", "var2"), # 拆分后新列名
  sep = "_" # 拆分分隔符
)

运行后得到的newdf和你给出的目标结构完全一致。

解法2:Base R原生实现(无需依赖第三方包)

如果不想安装额外包,用基础函数也能实现相同效果:

olddf <- data.frame('Z' = c('Z1','Z2','Z3'), 
                    'var' = c('A_H','A_H', 'B_J'))

# 拆分var列,转成数据框格式
split_res <- do.call(rbind, strsplit(olddf$var, split = "_"))
colnames(split_res) <- c("var1", "var2")

# 合并原有Z列和拆分结果,生成目标数据框
newdf <- cbind(olddf["Z"], split_res)

内容的提问来源于stack exchange,提问作者Expectation mean first moment

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:15:05