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

在R语言中统计指定单词集出现次数并生成得分列

统计指定单词出现次数生成得分列的解决方案

针对你的需求——统计每行Col1中Mon、Tues、Wed三个单词的出现次数并生成得分列,我整理了两种常用工具的实现方法:

方法一:使用Excel公式实现

假设你的Col1数据在A列,从A2开始(A1是表头),可以在B2单元格输入以下公式,然后下拉填充到所有行:

=SUMPRODUCT(--(ISNUMBER(MATCH(TEXTSPLIT(A2, ","), {"Mon","Tues","Wed"}, 0))))

公式拆解:

  • TEXTSPLIT(A2, ","):把A2单元格的文本按逗号拆分成单个单词的数组
  • MATCH(..., {"Mon","Tues","Wed"}, 0):检查每个拆分后的单词是否在目标集合里,匹配成功返回位置,失败返回错误值
  • ISNUMBER(...):把匹配结果转成布尔值(匹配成功为TRUE,失败为FALSE)
  • --(...):将布尔值转换成1或0(TRUE→1,FALSE→0)
  • SUMPRODUCT:对所有1和0求和,得到该行的最终得分

用这个公式就能得到你预期的结果:3、3、3、2、0。

方法二:使用Python Pandas实现

如果用Python处理数据,Pandas可以快速完成这个任务,代码示例如下:

import pandas as pd

# 构造你的数据集
data = {
    'Col1': ['Mon,Tues,Wed,Thurs,Fri', 'Mon,Tues,Wed,Thurs', 'Mon,Tues,Wed', 'Mon,Tues', 'Thurs']
}
df = pd.DataFrame(data)

# 定义需要统计的目标单词集合
target_words = {'Mon', 'Tues', 'Wed'}

# 生成得分列
df['Score'] = df['Col1'].apply(
    lambda x: sum(1 for word in x.split(',') if word.strip() in target_words)
)

# 输出结果
print(df)

代码说明:

  • x.split(','):把每行的Col1文本按逗号拆分成单词列表
  • word.strip():去除单词前后可能存在的空格(避免因空格导致匹配失败)
  • sum(1 for ...):遍历拆分后的单词,统计属于目标集合的数量
  • 最终生成的Score列就是你需要的得分

运行这段代码后,输出的DataFrame会包含你预期的得分列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:22:23