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

R语言如何统计数据框中带分隔符列的各字符串出现频次

拆分分隔字符串统计元素频次实现方案

核心处理逻辑共3步:

  • 清洗原始字符串:统一把逗号后附带的空格去掉,避免同值因为前后空格被识别为不同项
  • 拆分字符串:按逗号作为分隔符,把每个单元格内的多个值拆分为独立行,每个值关联原ID
  • 分组计数:对拆分后的独立值做去重计数,输出「字符串」「频次」两列结果

以下是不同常用场景的具体实现代码:

SQL实现(兼容MySQL8.0+/Hive/Spark SQL等支持递归CTE的引擎)

-- 生成连续序号用于字符串拆分,序号最大值需大于单条字符串最多可拆分出的元素个数
WITH RECURSIVE seq AS (
    SELECT 1 AS pos
    UNION ALL
    SELECT pos + 1 FROM seq WHERE pos < 100
),
split_tmp AS (
    SELECT
        DISTINCT t.ID,
        SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(t.str_col, ', ', ','), ',', s.pos), ',', -1) AS item
    FROM your_table t -- 把your_table替换成你的实际表名,str_col替换成你的带分隔符的字符串列名
    JOIN seq s 
      ON s.pos <= LENGTH(REPLACE(t.str_col, ', ', ',')) - LENGTH(REPLACE(REPLACE(t.str_col, ', ', ','), ',', '')) + 1
)
SELECT 
    item AS `字符串`,
    COUNT(ID) AS `频次`
FROM split_tmp
WHERE item != '' -- 过滤空值
GROUP BY item
ORDER BY 频次 DESC;

基于你给出的示例数据,运行后输出结果为:

字符串频次
B023
C033
A012
D042
E052

如果使用ClickHouse、PostgreSQL等自带数组拆分函数的引擎,代码可以更简洁,以ClickHouse为例:

SELECT
    item AS `字符串`,
    COUNT(DISTINCT ID) AS `频次`
FROM your_table
ARRAY JOIN splitByChar(',', replaceAll(str_col, ', ', ',')) AS item
WHERE item != ''
GROUP BY item
ORDER BY 频次 DESC;

Python Pandas实现(数据处理场景)

import pandas as pd

# 替换成你的实际数据源
df = pd.DataFrame({
    "ID": [1, 2, 3],
    "str_col": ["A01,B02,C03", "A01,B02,C03,D04,E05", "B02, C03, D04, E05"]
})

result = (
    df["str_col"]
    .str.replace(", ", ",", regex=False) # 清洗逗号后的空格
    .str.split(",") # 按逗号拆分字符串为列表
    .explode() # 把列表元素拆分为独立行
    .value_counts()
    .reset_index()
    .rename(columns={"index": "字符串", "str_col": "频次"})
)
print(result)

运行结果和SQL版本完全一致。

Excel/ WPS表格实现(轻量办公场景)

  • 第一步:字符串清洗:选中字符串列,按Ctrl+H调出查找替换窗口,查找内容输入, (逗号+空格),替换为输入,,点击全部替换
  • 第二步:分列:选中字符串列,点击顶部菜单栏「数据」-「分列」,选择分隔符号为逗号,完成拆分,让每个独立值占单独单元格
  • 第三步:合并单列:如果是365/2021及以上版本,直接输入公式=TOCOL(拆分后的数据区域,1)即可把所有拆分出的值合并为单列,自动忽略空值
  • 第四步:计数:选中合并后的值列,插入数据透视表,把该列字段分别拖到「行」区域和「值」区域,值字段设置为计数,即可直接得到统计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 23:45:35