Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.0k views
in Technique[技术] by (71.8m points)

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!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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))

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...