Кол-во символов R - PullRequest
       6

Кол-во символов R

5 голосов
/ 17 июня 2011

Я хочу добавить столбец, содержащий количество букв az в другом столбце из той же строки.

dataset$count <-length((gregexpr('[a-z]', as.character(dataset$text))[[1]]))

не работает.

Результат, который я хотел бы получить:

text  |  count
a     |  1
ao    |  2
ao2   |  2
as2e  |  3
as2eA |  3

Ответы [ 2 ]

15 голосов
/ 17 июня 2011

Хитрый:

nchar(gsub("[^a-z]","",x))
2 голосов
/ 17 июня 2011

Это должно сработать:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...