简体   繁体   中英

count number of digits in a string in r

I have a column with strings:

name
aldrinas63_rios200_2001
sa_c.fr.1234

I want to count the number of digits in each cell: I have used the following code:

str_count(data$name, '\\d+')

But I have getting the output as:

Name                    output_I_get
aldrinas63_rios200_2001  3
sa_c.fr.1234             1

But my desired output is as follows:

name                     output
aldrinas63_rios200_2001   9
sa_c.fr.1234              4

Any help in this regard will be highly appreciated!

We can remove the elements that are not digits and count

nchar(gsub("[^0-9]+", "", data$name))
#[1] 9 4

or if we are using str_count , remove the + as + checks for patterns of one or more digits and count 63 as first instance, 200 as second, and 2001 as third (for the first element of 'name')

library(stringr)
str_count(data$name, "[0-9]")
#[1] 9 4

data

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

Try this:

nchar(gsub("\\D", "", data$name))

Example

s <- c("aldrinas63_rios200_2001","sa_c.fr.1234")

nchar(gsub("\\D", "", s))
#[1] 9 4

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM