计算r中字符串中的位数

use*_*360 7 r

我有一个字符串列:

name
aldrinas63_rios200_2001
sa_c.fr.1234
Run Code Online (Sandbox Code Playgroud)

我想计算每个单元格中的位数:我使用了以下代码:

str_count(data$name, '\\d+')
Run Code Online (Sandbox Code Playgroud)

但我得到的输出为:

Name                    output_I_get
aldrinas63_rios200_2001  3
sa_c.fr.1234             1
Run Code Online (Sandbox Code Playgroud)

但我想要的输出如下:

name                     output
aldrinas63_rios200_2001   9
sa_c.fr.1234              4
Run Code Online (Sandbox Code Playgroud)

在这方面的任何帮助将受到高度赞赏!

akr*_*run 9

我们可以删除不是数字和计数的元素

nchar(gsub("[^0-9]+", "", data$name))
#[1] 9 4
Run Code Online (Sandbox Code Playgroud)

或者如果我们正在使用str_count,删除+as +检查一个或多个数字的模式并计63为第一个实例,200第二个和2001第三个(对于'name'的第一个元素)

library(stringr)
str_count(data$name, "[0-9]")
#[1] 9 4
Run Code Online (Sandbox Code Playgroud)

数据

data <- structure(list(name = c("aldrinas63_rios200_2001", "sa_c.fr.1234"
 )), class = "data.frame", row.names = c(NA, -2L))
Run Code Online (Sandbox Code Playgroud)