计算r中字符串的位数

时间:2018-09-21 16:10:32

标签: r

我有一列包含字符串:

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

在这方面的任何帮助将不胜感激!

2 个答案:

答案 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