2017-02-07 2 views
0

Я пытаюсь импортировать транскрипты интервью с помощью textreadr, но он работает, разделив текст на два столбца путем размещения символа разделителя (обычно двоеточия). В транскрипциях у меня есть двоеточие, которое иногда появляется в тексте ответа, которое вызывает ошибку. Я надеялся заменить эти двоеточия чем-то другим (например, тире или подчеркиванием), но не уверен, как это сделать.R заменить символ в строке, если происходит после местоположения или более одного раза

Я могу найти местоположение всех двоеточий через gregexpr(), но как я могу их заменить? Могу ли я использовать grep или sub каким-то образом через оператор if?

EDIT

Ok нашел inelegent решение через пакет stringr:

Сначала я заменить все двоеточия через

dat = str_replace_all(text,":","_") 

Затем я снова вставить только первый двоеточие, что я хотел, чтобы через

dat = str_replace(dat,"_",":") 

Не очень, но это сработало ....

+1

stringi :: stri_replace_first_regex –

ответ

0

Вы можете использовать strsplit, а затем объединить все элементы после первого. Что-то вроде:

txn <- c("Int1: This is some text.", 
     "Int2: As I speak I take a long pause: for effect", 
     "Int1: This inteview is over.")    

transcripts <- strsplit(txn, ":") 
interviewer <- sapply(transcripts, "[", 1) 
scripts <- sapply(transcripts, function(x) paste(x[-1], collapse = ":")) 
dat <- data.frame(interviewer, scripts) 
Смежные вопросы