如何在R语言中使用dplyr拆分数据框中拼接的向量值
在R中用dplyr拆分逗号分隔列并展开行
你可以使用dplyr包中的separate_rows()函数实现这个需求,它专门用于将包含分隔值的列拆分成多行,同时保留其他列的对应值。
完整代码示例
# 加载所需包 library(dplyr) library(tibble) # 构建原始数据框 var1 = c("Group_A","Group_B","Group_C","Hyper_group_A", "Group_D","Group_E","Group_F","Hyper_group_B") var2 = c("a,b,c,d,e","f,g","h,i","Group_A,Group_B", "j,k","l,m","n,o","Hyper_group_A,p") var3 = seq(1,8,1) data = tibble(var1,var2,var3) # 拆分var2列并展开行 result <- data %>% separate_rows(var2, sep = ",") # 查看结果 print(result)
代码说明
separate_rows(var2, sep = ","):指定要拆分的目标列为var2,分隔符设为逗号。该函数会自动将每个逗号分隔的元素拆分为单独行,同时复制对应行的var1和var3值,完全匹配你需要的输出格式。
运行代码后得到的结果结构如下:
| var1 | var2 | var3 |
|---|---|---|
| Group_A | a | 1 |
| Group_A | b | 1 |
| Group_A | c | 1 |
| Group_A | d | 1 |
| Group_A | e | 1 |
| Group_B | f | 2 |
| Group_B | g | 2 |
| ... | ... | ... |
| Hyper_group_B | Hyper_group_A | 8 |
| Hyper_group_B | p | 8 |
内容的提问来源于stack exchange,提问作者Homer Jay Simpson
相关产品推荐
相关产品推荐

