You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

R语言中统计正则表达式匹配单词数量的正确语法及str_view结果length返回8的原因

解决stringr统计匹配单词数量的问题

嘿,我来帮你搞定这两个问题:

1. 统计正则匹配单词数量的正确方法

str_view()本质是用来可视化展示匹配结果的工具,它不会返回匹配到的单词向量,所以没法直接用它来计数。你可以用下面两种更合适的方法:

方法一:用str_detect() + sum()

str_detect()会返回一个逻辑向量(每个元素对应words里的单词是否符合正则),sum()会自动把TRUE视为1、FALSE视为0,求和后就是匹配的总数:

library(stringr)
sum(str_detect(words, "^...$"))

方法二:用str_subset()提取后计数

str_subset()直接返回所有符合正则的单词组成的字符向量,再用length()就能得到数量:

length(str_subset(words, "^...$"))

两种方法都能得到正确的结果,你可以根据习惯选择~

2. 为什么length(x)会返回8?

当你运行x <- str_view(words, "^...$", match = TRUE)时,x并不是匹配到的单词向量,而是一个htmlwidget类型的对象——这是str_view()用来在RStudio里渲染可视化结果的特殊对象。

你可以试试运行str(x)或者typeof(x),就能看到它的结构里包含了可视化相关的组件(比如样式、内容容器等)。length(x)统计的是这个对象的组件个数,刚好是8,所以返回的8和匹配的单词数量完全无关哦。

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

火山引擎 最新活动