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

R语言生成多选项调研数据频次表的技术求助

拆分多选字符串字段统计频次(R语言)

问题背景

调研数据里的county字段是多选合并的字符串(比如"A, B"代表同时选了A和B两个县),需要统计每个县的被选频次,但标准的table()方法会把合并后的整串当作独立值,没法实现需求。

示例输入数据

df <- data.frame(org = c("org_1", "org_2", "org 3", "org 4"),
                 county = c("A, B", "A, D", "B, C", "B"))

期望输出

output <- data.frame(county = c("A", "B", "C", "D"),
                     frequency = c(2, 3, 1, 1))

解决方案

方法1:用tidyverse工具链(推荐)

通过separate_rows()把多选字段拆成单独行,再用count()统计频次:

library(tidyverse)

output <- df %>%
  separate_rows(county, sep = ", ") %>% # 按", "拆分每个单元格的字符串,生成对应多行
  count(county, name = "frequency")    # 统计每个县的出现次数,自定义列名为frequency

output

方法2:基础R实现

不用额外安装包,靠字符串拆分和基础统计函数完成:

# 拆分每个单元格的字符串,转成一维向量
county_vec <- unlist(strsplit(df$county, ", "))

# 统计频次并转换成目标数据框格式
freq_table <- table(county_vec)
output <- data.frame(
  county = names(freq_table),
  frequency = as.numeric(freq_table)
)

output

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:05:28