2016-06-13 1 views
1

R을 사용하여 텍스트 분석을하고 있으며 다른 대문자로 표시된 단어를 그대로 유지하면서 문장의 첫 번째 글자를 소문자로 변환해야했습니다. 그래서 나는 명령을 사용했습니다.은 R을 사용하여 txt 파일의 빈 줄을 제거 할 수 없습니다.

 x <- gsub("(\\..*?[A-Z])", '\\L\\1', x, perl=TRUE) 

부분적으로 작동했지만 부분적으로는 사용했습니다. 문제는 텍스트 분석에서 pdf 파일을 txt 형식으로 변환해야하고 이제는 txt 파일에 빈 줄 (페이지 나누기, 반환 가능성이 있음)이 많이 포함되어 있으므로 사용 된 명령은 대문자를 변환하지 않습니다. 새 줄에 나타납니다. gsub에 \ r, \ n을 여러 개 사용하여 빈 줄을 제거하려고했지만 아무 것도 작동하지 않습니다. 나는 검사 할 때 (x)는 TM-패키지의 출력은 다음과 같은 방법으로 보인다 :

[346]                                                             
[347] Thank you.                                                          
[348]                                                             
[349] Vice President of Investor Relations                                                
[350] 

누군가가 나를 도울 수 있다면 나는 감사 드리겠습니다!

+0

'문장의 첫 글자'란 무엇을 의미합니까? 글자는 몇 개입니까? 모두들? 그들 중 일부는? –

+0

그냥 첫 번째 주요 하나, 그래서 그것은 모양 : '[341] 효율성과 생산성. 우리가 생각하는 ' –

답변

3

출력이 주어지면 빈 줄은 문자 벡터의 개별 문자열로 보입니다. 당신은 grep를 사용하는을 필터링해야합니다

empty_lines = grepl('^\\s*$', x) 
x = x[! empty_lines] 

그런 다음 당신은 당신의 후속 분석을 수행 할 수 있지만 당신은 아마 여전히 하나의 문자열 얻기 위해 먼저 선을 연결해야합니다

x = paste(x, collapse = '\n') 
+0

@ Kohrad Rudolph 고마워요! 나는 그것을 시도했지만 다음과 같은 오류 메시지가 발생한다 :'UseMethod ("meta", x)의 오류 : "character"클래스의 객체에 적용된 'meta'에 적용 가능한 메소드가 없다. –

+0

@Daria 호출이 없다. 내 코드에서 "메타"로, 그래서이 오류가 어디서 오는지 모르겠습니다. 당신은 다른 코드를 사용하고 있거나 R 세션이 몇 가지 핵심 R 구조를 아주 이상한 방식으로 재정의했습니다. –

+0

'x <- gsub ("^ \\ s + | \\ s + $", "", x)'명령으로 알아 냈습니다. 도와 줘서 고마워! –

1

당신은 할 수 있습니다 GE는 수 ^[A-Z]를 사용하여 새 라인을 얻을 수와 함께 두 경우를 분리 또는 |

x <- gsub("(\\..*?[A-Z]|^[A-Z])", '\\L\\1', x, perl=TRUE) 

서명 그리고 당신 위의 단계 전후에 빈 줄을 제거하지 마십시오.

x <- x[x != ""] 
+0

감사합니다. 후자는 나를 위해 일했다! 그러나 나는 아직도 다음 문제에 직면 할 것이다. 기본적으로 줄 시작 부분에 "여분"공백이 있습니다. –

+0

'[283] 웹 도구. [284] 아니요, 2 분기에 구체적인 목표를 제시하지 않았습니다. [285] 고맙습니다.' –

+0

'gsub ("^", "", x)'행을 시작할 때 공백을 제거 할 수 있습니다 – JeremyS

관련 문제