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

R语言表格处理:拆分多值列并复制对应分数

解决方案

先模拟你的原始数据结构(方便直接测试代码):

df <- data.frame(
  V1 = c("A", "B", "C"),
  V2 = c(90, 85, 88),
  V3 = c("X,Y,Z", "M,N", "P")
)

方法一:使用tidyverse工具包(推荐)

tidyverse里的tidyr::unnest_longer()可以直接拆分多值列并展开行,同时保留对应其他列的内容:

library(tidyverse)

# 按逗号拆分V3为列表,再展开成多行
result_df <- df %>%
  mutate(V3 = str_split(V3, ",")) %>%
  unnest_longer(V3)

运行后得到的拆分结果:

# A tibble: 6 × 3
  V1       V2 V3   
  <chr> <dbl> <chr>
1 A        90 X    
2 A        90 Y    
3 A        90 Z    
4 B        85 M    
5 B        85 N    
6 C        88 P    

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

如果不想依赖第三方包,用Base R也能完成:

# 拆分V3列,计算每行需要重复的次数
split_v3 <- strsplit(df$V3, ",")
row_indices <- rep(seq(nrow(df)), sapply(split_v3, length))

# 构造最终结果数据框
result_df_base <- data.frame(
  V1 = df$V1[row_indices],
  V2 = df$V2[row_indices],
  V3 = unlist(split_v3)
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:32:02