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

如何拆分数据框列的字符串并用于dplyr分组统计?

解决方法

你可以用tidyr::separate_rows()先把逗号分隔的genre拆分成单独行,再分组统计数量,具体步骤如下:

  1. 加载所需工具包(tidyverse包含处理数据的dplyr和tidyr):
library(tidyverse)
  1. 拆分genre列并统计数量:
    separate_rows()会把每个包含多个genre的单元格拆分成独立行,同时保留对应author的信息;后续用count()可以一步完成分组和计数。

完整代码

df <- data.frame(author= c("w","x","y","z"),
                 genre= c("a,b,c","a","c,d","a,b,c,d"))

# 拆分+统计
result <- df %>%
  separate_rows(genre, sep = ",") %>%
  count(genre, name = "n")

print(result)

运行结果

# A tibble: 4 × 2
  genre     n
  <chr> <int>
1 a         3
2 b         2
3 c         3
4 d         2

如果不想加载整个tidyverse,也可以单独加载tidyr和dplyr:

library(tidyr)
library(dplyr)

你之前用str_split()得到列表列后无法正常分组,是因为列表类型的列不能被group_by()直接识别,必须先将列表展开为多行,separate_rows()就是用来完成这个展开操作的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:00:59