stringr :: str_locate не принимает переменные - PullRequest
0 голосов
/ 08 октября 2018

В текстовом анализе я хочу очистить текст после определенных слов (очистка подписи электронной почты) до конца.Для этого я использую stringr::str_locate

, чтобы найти местоположение данного текста.Это работает, когда я передаю текст по одному.Но, когда я передаю один раз, используя цикл, он не берет.

Вот мой сценарий:

    library(stringr)
    txt <- c("Hello.\r\ncorrections have been done now.\r\nCheers, Peik Niemi\r\ncheers, Peik\r\n\r\nBest Regards,\r\nAngelo Javier\r\n------------------- Original Message -------------------\r")
    salt <- c("NOTICE:", "Many thanks", "Sincerely", "With gratitude", "rgds", "tks", "cheers","tc", "disclaimer", "kind regards","best regards","thanks and regards","Sent from my","Outlook for Android","[\n\r].*--","warm regards","thanks & regards","regards","\\*\\*")
     names(salt) <- salt[]
             Salute <- function(txt){
              for(i in salt[,]){
                txt1 <- tolower(txt)
                assign(salt1, names(salt[i]))
                # salt1 = salt[i]
                dis_loc = as.data.frame(str_locate(as.character(txt1, pattern=fixed(salt1))))[1,1]
                }
              if(is.na(dis_loc)){ct = txt}
              if(is.na(dis_loc)==F){ct = (substr(txt,1, (dis_loc-1)))}
              substr(txt,1, (dis_loc-1))
              ct <- as.data.table(ct)
              return(ct)
            }

txtClean <- lapply(txt,Salute)

Ошибка: Ошибка в типе (шаблоне): отсутствует аргумент "шаблон", без значения по умолчанию

Ожидаемый результат: "Дорогой Мюррей, время для собрания группы"

Пожалуйста, помогите мне правильно передать список в Str_locate.Заранее спасибо!

1 Ответ

0 голосов
/ 08 октября 2018

Следующий код удаляет все, что происходит после (и в том числе) одного из ваших ключевых слов:

str_replace(txt,paste0("(?i)(",paste(salt,collapse="|"),")(?s).*"),"")
#[1] "Dear Murray,\nTime for a band meeting\n"

txt <- "Hello.\r\ncorrections have been done now.\r\nCheers, Peik Niemi\r\ncheers, Peik\r\n\r\nBest Regards,\r\nAngelo Javier\r\n------------------- Original Message -------------------\r"
str_replace(txt,paste0("(?i)(",paste(salt,collapse="|"),")(?s).*"),"")
#[1] "Hello.\r\ncorrections have been done now.\r\n"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...