gpt4 book ai didi

r - 如何使用 R 计算字符串中的 CAPSLOCK

转载 作者:行者123 更新时间:2023-12-04 09:23:47 25 4
gpt4 key购买 nike

src$Review 中,每一行都用俄语填充。我想计算每行中的 CAPSLOCK。例如,在“我的苹果是绿色的”中,我不仅要计算大写字母的数量,还要计算 CAPSLOCK 的数量(没有“My”,只有“GREEN”)。因此,它仅在至少两个字符以大写形式显示时才有效。

现在我的脚本中有以下代码:

capscount <- str_count(src$Review, "[А-Я]")

它只计算大写字母的总数。我只需要 CAPSLOCK 中的字符总数,这意味着只有当一个单词中至少显示 2 个后续字母(例如,“GREEN”中的“GR”)时,才会计算这些字符。

提前谢谢你。

最佳答案

您要查找的模式是 "\\b[A-Z]{2,}\\b"。它将匹配两个或多个连续的大写字母,每边都有边界 \\b。这就是整体结构,必要时填写俄文字母。

#test string. A correct count should be 1 0 2
x <- c("My GREEN", "My Green", "MY GREEN")

library(stringr)
str_count(x, "\\b[A-Z]{2,}\\b")
#[1] 1 0 2

library(stringi)
stri_count(x, regex="\\b[A-Z]{2,}\\b")
#[1] 1 0 2

#base R
sapply(gregexpr("\\b[A-Z]{2,}\\b", x), function(x) length(c(x[x > 0])))
#[1] 1 0 2

更新

如果你想要字符数:

sapply(str_match_all(x, "\\b[A-Z]{2,}\\b"), nchar)

关于r - 如何使用 R 计算字符串中的 CAPSLOCK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33197733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com