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 <- 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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With