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

如何在R中从含文件名的因子列拆分生成新增数据列?

在R语言中拆分文件名列生成多列数据

你需要从FileName列按下划线分隔拆分出Name、Day、Density三列,以下是两种高效可行的解决方案:

方法一:使用tidyverse工具包(推荐,代码简洁易读)

如果未安装tidyverse,先执行安装命令install.packages("tidyverse"),再运行以下代码:

library(tidyverse)

# 原始数据
FileName <- c("123456_D1_5k", "123456_D1_10k", "123456_D2_5k", "123456_D2_10k",
              "987654_D1_5k", "987654_D1_10k", "987654_D2_5k", "987654_D2_10k")
Value <- c("5", "9", "14", "15", "14", "21", "24", "16")
df <- data.frame(FileName, Value)

# 按下划线拆分FileName列,生成三列
df_new <- df %>%
  separate(FileName, into = c("Name", "Day", "Density"), sep = "_")

# 查看结果
print(df_new)

方法二:使用base R(无需额外安装包)

完全依靠R基础包实现拆分,适合不想安装第三方包的场景:

# 原始数据
FileName <- c("123456_D1_5k", "123456_D1_10k", "123456_D2_5k", "123456_D2_10k",
              "987654_D1_5k", "987654_D1_10k", "987654_D2_5k", "987654_D2_10k")
Value <- c("5", "9", "14", "15", "14", "21", "24", "16")
df <- data.frame(FileName, Value)

# 拆分每个文件名,转换为数据框
split_result <- do.call(rbind, strsplit(as.character(df$FileName), split = "_"))
colnames(split_result) <- c("Name", "Day", "Density")

# 合并拆分结果与原始Value列
df_new <- cbind(as.data.frame(split_result), Value = df$Value)

# 查看结果
print(df_new)

额外提示

如果需要将Value列从字符型转为数值型,可执行:

df_new$Value <- as.numeric(df_new$Value)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:15:12