2015-03-17 3 views
2

Мне нужно удалить знаки препинания из текста. Я использую пакет тм, но улов:Удаление пунктуации из текста с помощью R

, например: текст что-то вроде этого:

data <- "I am a, new comer","to r,"please help","me:out","here" 

теперь, когда я бегу

library(tm) 
data<-removePunctuation(data) 

в моем коде, результат:

I am a new comerto rplease helpmeouthere 

но то, что я ожидаю:

I am a new comer to r please help me out here 
+4

'данные <-» Я «новый», «r», «пожалуйста, помогите», «me: out», «here» 'является недопустимым синтаксисом в R, можете ли вы сделать это воспроизводимым? Используете ли вы' c', и это несколько строк ? Или это всего лишь одна длинная строка (судя по вашему желаемому результату). В любом случае, лет u может попробовать что-то вроде 'gsub (" [[: punct:]] "," ", data)' для стартеров. –

ответ

8

Вот как я беру ваш вопрос и ответ, который очень близок к @David Arenburg's в комментарии выше.

data <- '"I am a, new comer","to r,"please help","me:out","here"' 
gsub('[[:punct:] ]+',' ',data) 
[1] " I am a new comer to r please help me out here " 

Дополнительное пространство после того, как [пунктуатором] является добавление пробелов в строку и + соответствует одному или более последовательных элементов в регулярном выражении. Это имеет побочный эффект, желательный в некоторых случаях, сокращение любой последовательности пространств до одного пробела.

+1

'gsub (" [[: punct:] [: blank:]] + "," ", data)' будет более уместным. –

+1

@AvinashRaj, согласился. Я пытаюсь вспомнить предупреждение против использования регулярных выражений: «Сначала у вас есть проблема, тогда вы пишете регулярное выражение, и у вас есть две проблемы». Для начинающих регулярными выражениями могут быть глубокие отверстия кролика. Удалил ли OP удалить вкладки? Вероятно. – PeterK

+1

@ AvinashRaj Я работал над тем же, что и работал Спасибо –

0

Если у вас что-то вроде

string <- "hello,you" 
> string 
[1] "hello,you" 

Вы можете сделать это:

> gsub(",", "", string) 
[1] "helloyou" 

Он заменяет "" с "" в строке переменной называется

Смежные вопросы