假设我有一个如下所示的 txt 文件
aaaaaaaaaaaaaaaadddddddddddddssssssssssbbbbbbbbbbbbbccccccccccxxxxxxxxxxsddddddaaasdadvvvvvvvvbbbbbbbaxxxxnnnnnnnnnwwwwwwwwwwwwww
Run Code Online (Sandbox Code Playgroud)
str_split()这种情况我该如何申请?
我正在尝试计算这个txt文件中出现了多少个字母“a”
这是我到目前为止所拥有的,
aaaaaaaaaaaaaaaadddddddddddddssssssssssbbbbbbbbbbbbbccccccccccxxxxxxxxxxsddddddaaasdadvvvvvvvvbbbbbbbaxxxxnnnnnnnnnwwwwwwwwwwwwww
Run Code Online (Sandbox Code Playgroud)
然后我跑了str_length(str_detect(mytxtfile, "a"))
该函数的结果少于 9,我相信我在使用时做错了什么str_split()
请帮忙!
基本 R 选项使用lengths和regmatches来gregexpr计算字符串中的字符,如下所示:
input = 'aaaaaaaaaaaaaaaadddddddddddddssssssssssbbbbbbbbbbbbbccccccccccxxxxxxxxxxsddddddaaasdadvvvvvvvvbbbbbbbaxxxxnnnnnnnnnwwwwwwwwwwwwww'
lengths(regmatches(input, gregexpr("a", input)))
#> [1] 21
Run Code Online (Sandbox Code Playgroud)
创建于 2022-12-09,使用reprex v2.0.2
@jay.sf 是对的!regmatches没有必要:
input = 'aaaaaaaaaaaaaaaadddddddddddddssssssssssbbbbbbbbbbbbbccccccccccxxxxxxxxxxsddddddaaasdadvvvvvvvvbbbbbbbaxxxxnnnnnnnnnwwwwwwwwwwwwww'
lengths(gregexpr("a", input))
#> [1] 21
Run Code Online (Sandbox Code Playgroud)
创建于 2022-12-09,使用reprex v2.0.2
您可以使用str_count对字符串内部进行计数:
library(stringr)
mytxtfile = "aaaaaaaaaaaaaaaadddddddddddddssssssssssbbbbbbbbbbbbbccccccccccxxxxxxxxxxsddddddaaasdadvvvvvvvvbbbbbbbaxxxxnnnnnnnnnwwwwwwwwwwwwww"
str_count(mytxtfile, "a")
#[1] 21
Run Code Online (Sandbox Code Playgroud)
使用str_split_*函数,您可以使用str_split_1(stringr 1.5.0必需)++ str_detect(sum尽管如您所见,它str_count要好得多):
str_split_1(mytxtfile, "") |>
str_detect("a") |>
sum()
#[1] 21
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |