我有一列包含字符串:
name
aldrinas63_rios200_2001
sa_c.fr.1234
我想计算每个单元格中的位数:我使用了以下代码:
str_count(data$name, '\\d+')
但是我得到的输出为:
Name output_I_get
aldrinas63_rios200_2001 3
sa_c.fr.1234 1
但是我想要的输出如下:
name output
aldrinas63_rios200_2001 9
sa_c.fr.1234 4
在这方面的任何帮助将不胜感激!
答案 0 :(得分:7)
我们可以删除非数字和计数的元素
nchar(gsub("[^0-9]+", "", data$name))
#[1] 9 4
或者如果我们使用的是str_count
,请删除+
,因为+
检查一个或多个数字的模式,并将63
视为第一个实例{{1} }作为第二个,200
作为第三(对于“ name”的第一个元素)
2001
library(stringr)
str_count(data$name, "[0-9]")
#[1] 9 4
答案 1 :(得分:3)
尝试一下:
nchar(gsub("\\D", "", data$name))
示例
s <- c("aldrinas63_rios200_2001","sa_c.fr.1234")
nchar(gsub("\\D", "", s))
#[1] 9 4