2013-11-21 5 views
3
:

R : 텍스트 문자열을 분할하고 싶지만 고려해야 할 부분이 있습니다. 예를 들어, 문자열에 . 또는 !이라는 점이 있으면 해당 함수에서 내 분할 목록의 요소로 가져옵니다. 아래에서 원하는 것을 보여줍니다.R : 특정 문자열 분할 R

mytext="Caracas. Montevideo! Chicago." 
    split= "Caracas", "." ,"Montevideo", "!", "Chicago", "."  

내 현재 접근법은 이전에 내장 R 함수 gsub을 "." 에 의해 "."다음 strsplit 함수를 사용합니다.

mytext=gsub("\\."," .",mytext) 
    mytext=gsub("\\!"," !",mytext) 
    unlist(strsplit(mytext,split=' ')) 

그래서, 내 질문은 :입니다 거기 strsplit 기능 또는 coonsider보다 효율적으로 될 수있다 또 다른 접근 방식에 대한 매개 변수를 구성하여이를 구현하는 또 다른 방법은.

도움이나 의견을 보내 주시면 감사하겠습니다.

+0

¡ ¡ Vamos Montevideo !! –

+0

jaja. Es asi, 린다 시티. – Nestorghh

+0

que estudias en esta analysis? –

답변

3

봐 미리 당신이 여기 찾고있는 무엇 :

strsplit(mytext, split = "(?=(\\.|!))", perl = TRUE) 
#[[1]] 
#[1] "Caracas"  "."   " Montevideo" "!"   " Chicago" "." 
+1

'perl' 플래그가 R의 look ahead에 중요하다는 것을 명시 적으로 주목할 필요가 있습니다. –

1

EDDI의 솔루션은 공백을 분할하지 않습니다. 이것을 시도하십시오 :

> regmatches(mytext, gregexpr(text=mytext, pattern="(?=[\\.\\!])|(?:\\s)", perl=T), invert=T) 
[[1]] 
[1] "Caracas" "."   "Montevideo" "!"   "Chicago" "."