Как убрать первые несколько слов и считать - PullRequest
0 голосов
/ 29 марта 2019

У меня есть фрейм данных с текстовым столбцом, мне нужно игнорировать или исключить первые 2 слова и считать количество строк в этом столбце.

 b=data.frame(text=c("hello sunitha what can I do for you?","hi john what can I do for you?")

Ожидаемый результат в кадре данных 'b': Пожалуйста, предложите мне, как мы можем удалить первые 2 слова, чтобы подсчитать, что я могу сделать для вас? = 2

Ответы [ 2 ]

1 голос
/ 29 марта 2019

Вы можете использовать gsub, чтобы удалить первые два слова, а затем tapply и считать, т.е.

i1 <- gsub("^\\w*\\s*\\w*\\s*", "", b$text)
tapply(i1, i1, length)
#what can I do for you? 
#                     2

Если вам нужно удалить любой диапазон слов, мы можем изменить i1 какследует,

i1 <- sapply(strsplit(as.character(b$text), ' '), function(i)paste(i[-c(2:4)], collapse = ' '))
tapply(i1, i1, length)
#hello I do for you?    hi I do for you? 
#                  1                   1 
0 голосов
/ 29 марта 2019
 b=data.frame(text=c("hello sunitha what can I do for you?","hi john what can I do for you?"),stringsAsFactors = FALSE)
b$processed = sapply(b$text, function(x) (strsplit(x," ")[[1]]%>%.[-c(1:2)])%>%paste0(.,collapse=" "))
b$count = sapply(b$processed, function(x) length(strsplit(x," ")[[1]]))
> b
                                  text              processed count
1 hello sunitha what can I do for you? what can I do for you?     6
2       hi john what can I do for you? what can I do for you?     6

Вы ищете что-то подобное?следите за stringsAsFactors = FALSE, иначе ваши тексты будут иметь тип factor и труднее работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...