Удалить слова с длиной больше X в R

В программировании на R после того, как я удалил знаки препинания, цифры и символы не ascii, у меня осталось много слов с длинными символами:

ques1<-gsub("[[:digit:]]"," ", ques1,perl=TRUE)
ques1<-gsub("[[:punct:]]"," ", ques1,perl=TRUE)

ques1<-iconv(ques1, "latin1", "ASCII", sub=" ")
ques1<-rm_white(ques1)
ques1

Я проверил самую длинную длину символа 35, используя

max(nchar(strsplit(ques1, " ")[[1]]))
[1] 35

Теперь я хочу удалить слова, которые имеют более 10 символов, как я не хотел их, такие как

wwwhotmailcomlearnbyexample

Пожалуйста, помогите мне!

1 ответ

Решение

Используйте следующий gsub:

ques1 = "A long sentence with long wwwhotmailcomlearnbyexample"
gsub("\\b[[:alpha:]]{11,}\\b", "", ques1, perl=T)

\\b[[:alpha:]]{11,}\\b регулярное выражение будет соответствовать словам длиной 11 или более (\\b это граница слова и [:alpha:] обозначает любую букву).

Посмотреть демо IDEONE

Другие вопросы по тегам