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

无法在str_count()函数中使用循环统计含问号文本占比

解决统计含问号文本占比的问题

原代码的问题

你写的循环只是调用str_count()计算了每个文本里的问号数量,但既没打印结果也没把结果存到变量里,所以运行后看不到任何输出。而且你的需求是统计包含问号的文本数量占比,不需要统计单文本内的问号个数,用str_count()属于做了多余计算。

高效解决方案(推荐)

R是向量化语言,完全不需要写循环,用stringr包的str_detect()就能快速实现需求:

# 先加载stringr包
library(stringr)

# 判断每条文本是否包含问号,得到逻辑向量(TRUE=包含,FALSE=不包含)
has_question_mark <- str_detect(data_frame$text, pattern = "\\?")

# 计算占比:逻辑向量的平均值就是占比(TRUE被视为1,FALSE视为0)
proportion <- mean(has_question_mark)

# 输出结果
print(proportion)

若要修改原循环(不推荐)

如果非要让你的循环有输出,可以改成下面这样,但这种方法效率远低于向量化操作:

library(stringr)

# 初始化空向量存储结果
counts <- c()

for (i in 1:nrow(data_frame)) {
  # 计算当前文本的问号数量并存入向量
  cnt <- str_count(data_frame$text[i], pattern = "\\?")
  counts <- c(counts, cnt)
}

# 统计含问号的文本占比
proportion <- mean(counts > 0)
print(proportion)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:01:55