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

在R语言中按单元格逗号分隔值拆分并复制指定行的方法

解决方案:拆分多值单元格并展开行

直接使用tidyr包的separate_rows()函数就能高效完成需求,无需循环,代码如下:

library(dplyr)
library(tidyr)

# 原始数据集
DF <- tibble(id = seq(1:4),
             label = c("A", "B", "C", "D"),
             val = c(NA, "5, 10", "20", "6, 7, 8"))

# 核心处理步骤
result <- DF %>%
  separate_rows(val, sep = ", ", convert = FALSE)

# 查看结果
result

执行后输出和预期完全一致:

# A tibble: 7 × 3
     id label val  
  <int> <chr> <chr>
1     1 A     NA   
2     2 B     5    
3     2 B     10   
4     3 C     20   
5     4 D     6    
6     4 D     7    
7     4 D     8    

关键参数说明

  • sep = ", ":指定拆分的分隔符是逗号加空格,匹配数据格式,避免拆分后出现多余空格。
  • convert = FALSE:保持val列的字符类型;如果需要将val转为数值型,改成convert = TRUE即可。
  • 函数会自动识别需拆分的行:不含逗号的行、NA行均保持原样,含逗号的行自动按值的数量复制并拆分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 06:02:47