Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

count number of digits in a string in r

Tags:

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!

like image 367
user3642360 Avatar asked Sep 21 '18 16:09

user3642360


2 Answers

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))
like image 170
akrun Avatar answered Nov 09 '22 12:11

akrun


Try this:

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

Example

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

nchar(gsub("\\D", "", s))
#[1] 9 4
like image 23
989 Avatar answered Nov 09 '22 13:11

989