我有一个字符串列:
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)
在这方面的任何帮助将受到高度赞赏!
我们可以删除不是数字和计数的元素
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)