我有一个很大的 Dataframe ,其中包括公司标识符和从报纸上提取的短语。它非常混乱,我想通过条件行删除来清理它。
enter image description here
为此,我想删除超过50%大写字母的行。
我发现this code from a post会删除所有大写字母的行:
data <- data[!grepl("^[A-Z]+(?:[ -][A-Z]+)*$", data$text), ]
如何将其表示为占总字数或总字母数的比例?
我有一个很大的 Dataframe ,其中包括公司标识符和从报纸上提取的短语。它非常混乱,我想通过条件行删除来清理它。
enter image description here
为此,我想删除超过50%大写字母的行。
我发现this code from a post会删除所有大写字母的行:
data <- data[!grepl("^[A-Z]+(?:[ -][A-Z]+)*$", data$text), ]
如何将其表示为占总字数或总字母数的比例?
1条答案
按热度按时间lyfkaqu11#
你可以用正则表达式来实现这一点,但是
stringi
函数stri_count_charclass
提供了一个高度优化的版本来检测字符的类别。软件包手册记录了Unicode通用类别列表,这里我们使用字符串L
来表示所有字母,Lu
来表示大写字母。类似这样的东西应该能满足你的需求:
stringi
的强大特性。* 我的本能React是使用[a-z]
和[A-Z]
分别表示小写和大写字符。然而,使用Unicode通用分类允许该解决方案也可以很好地用于非ascii字符。