计算字符串中的数字(不是数字)

时间:2018-03-15 00:52:26

标签: r regex

我想计算字符串中用空格分隔的数字(不是数字)。

tst1 = "69 21 -" 
tst2 = "69 24 7"
## ATTEMPT: 
grep('([0-9])', tst1, perl = TRUE) ## EXPECT 2
grep('([0-9])', tst2, perl = TRUE) ## EXPECT 3

2 个答案:

答案 0 :(得分:4)

您可以使用str_count

中的stringr功能
library(stringr)
str_count(tst1, '\\d+')
2
str_count(tst2, '\\d+')
3

答案 1 :(得分:1)

使用gsub,仅提取数字并使用sum()

计算数字

数据:

tst1  <- list( "69 21 -" , "69 24 7", "sdfsdf 24 453 35 sdff 45", "sfsdff" )

代码:

y <- lapply(tst1, function(x) {
  temp <- unlist( strsplit( gsub("[^[:digit:]]", " ", x), split = " ") )
  sum( temp != "" )
} )

输出:

y
# [1] 2 3 4 0