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

如何按列中的逗号将DataFrame拆分为更多行?

拆分DataFrame中带逗号的列并重复对应行

原始数据

先定义你的初始DataFrame:

dt1 <- structure(list(Variable = c("Apple", "Orange"), Value = c("12, 5", 
"15")), class = "data.frame", row.names = c(NA, -2L))

解决方案

方法一:使用tidyverse工具(简洁高效)

借助tidyverse中的separate_rows函数,可直接拆分指定列并自动重复其他列的对应行:

# 加载包
library(tidyverse)

# 拆分并转换数据类型
dt2 <- dt1 %>%
  separate_rows(Value, sep = ", ") %>%  # 按", "拆分Value列并展开行
  mutate(Value = as.integer(Value))     # 将Value转为整数类型

验证结果:

dput(dt2)
# 输出:
# structure(list(Variable = c("Apple", "Apple", "Orange"), Value = c(12L, 
# 5L, 15L)), class = "data.frame", row.names = c(NA, -3L))

方法二:Base R实现(无需额外包)

如果不想加载第三方包,可通过基础函数完成需求:

# 拆分Value列得到列表
split_vals <- strsplit(dt1$Value, ", ")
# 根据拆分后的元素数量重复Variable列
var_col <- rep(dt1$Variable, sapply(split_vals, length))
# 拆分后的值转为整数向量
val_col <- as.integer(unlist(split_vals))
# 组合成目标DataFrame
dt2_base <- data.frame(Variable = var_col, Value = val_col)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 11:33:17