我想计算字符串中用空格分隔的数字(不是数字)。
tst1 = "69 21 -"
tst2 = "69 24 7"
## ATTEMPT:
grep('([0-9])', tst1, perl = TRUE) ## EXPECT 2
grep('([0-9])', tst2, perl = TRUE) ## EXPECT 3
答案 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