Это должно сработать:
numchars<-function(txt){
#basically your code, but to be applied to 1 item
tmpres<-gregexpr('[a-z]', as.character(txt))[[1]]
ifelse(tmpres[1]==-1, 0, length(tmpres))
}
#now apply it to all items:
dataset$count <-sapply(dataset$text, numchars)
Другим вариантом является более двухэтапный подход:
charmatches<-gregexpr('[a-z]', as.character(dataset$text))[[1]]
dataset$count<-sapply(charmatches, length)