У меня есть data.frame, в котором некоторые переменные содержат текстовую строку. Я хочу подсчитать количество вхождений заданного символа в каждой отдельной строке.
Пример:
q.data<-data.frame(number=1:3, string=c("greatgreat", "magic", "not"))
Я хочу создать новый столбец для q.data с числом встречаемости "a" в строке (например, c (2,1,0)).
Единственный запутанный подход, которым я справился:
string.counter<-function(strings, pattern){  
  counts<-NULL
  for(i in 1:length(strings)){
    counts[i]<-length(attr(gregexpr(pattern,strings[i])[[1]], "match.length")[attr(gregexpr(pattern,strings[i])[[1]], "match.length")>0])
  }
return(counts)
}
string.counter(strings=q.data$string, pattern="a")
 number     string number.of.a
1      1 greatgreat           2
2      2      magic           1
3      3        not           0