2017-10-09 5 views
-1

R에서 전처리를하려고하는데, $로 시작하는 단어를 제거해야합니다. 아래 코드는 $ 단어가 아니라 $ 단어를 제거합니다. 나는 당황합니다.

inspect(data.corpus1[1:2]) 
# <<SimpleCorpus>> 
# Metadata: corpus specific: 1, document level (indexed): 0 
# Content: documents: 2 
# 
# [1] $rprx loading mid .60's, think potential. 12m vol fri already 11m today 
# [2] members report success see track record $itek $rprx $nete $cnet $zn $cwbr $inpx 

removePunctWords <- function(x) { 
    gsub(pattern = "\\$", "", x) 
} 
data.corpus1 <- 
    tm_map(data.corpus1, 
     content_transformer(removePunctWords)) 
inspect(data.corpus1[1:2]) 
# <<SimpleCorpus>> 
# Metadata: corpus specific: 1, document level (indexed): 0 
# Content: documents: 2 
# 
# [1] rprx loading mid .60's, think potential. 12m vol fri already 11m today 
# [2] members report success see track record itek rprx nete cnet zn cwbr inpx 
+0

저는 정규 표현식으로는 최고가 아니지만 "."일 가능성이 있습니까? 예 :'gsub (pattern = "\\ $. *", "", x)'? – shea

+0

@shea 그건 처음 $ 다음에 모든 것을 죽일거야. 즉시 따르는 $와 단어 문자 만 제거하고 싶을뿐입니다. – G5W

+0

@ G5W 설명해 주셔서 감사합니다. 나는 ". *"이 탐욕 스럽다는 것을 몰랐다. – shea

답변

3

정규식은 $ 만 지정합니다. 나머지 단어를 포함시켜야합니다.

removePunctWords <- function(x) { 
    gsub(pattern = "\\$\\w*", "", x) 
} 
+0

두 가지 사항, 1) 단어 앞에 '$'가 없더라도 모두 제거됩니다. 2) 단어 중간에 달러 기호가 일치하지 않게하려면 장벽 문자를 정규 표현식 앞에 추가해야합니다. ** bill $ s ** 또는 ** co $ t **. OP는이 시나리오에서 예상되는 동작을 지정하지 않지만 언급할만한 가치가 있다고 생각했습니다. – emilliman5