2014-07-23 2 views
0

클립 보드에서 데이터를 추출 할 때 많은 구두점 (따옴표, 쉼표 등)이있는 문제가 있습니다. 분석을 위해 R의 변수에 클립 보드로 복사하여 일반 텍스트 문서로 entirety of Jane Austen's Pride and Prejudice을 가져 오려고합니다. 나는데이터를 표로 만들기 전에 구두점 제거하기

book <- read.table("clipboard", sep="\n") 

을 할 경우

나는 오류에 "인용 된 문자열 내에서 EOF"를 얻는다. 옵션을 문자열로 사용하지 않는 경우 :

book <- read.table("clipboard", sep="\n", stringsAsFactors=F) 

동일한 오류가 발생합니다. 인용문이있는 곳에 여러 단락을 함께 넣어 표에 영향을줍니다. 텍스트 편집기에서 책을 열고 큰 따옴표와 작은 따옴표를 제거한 다음 read.table 옵션을 시도하면 결과가 완벽합니다.

read.table 단계 이전 또는 도중 구두점을 제거 할 수있는 방법이 있습니까? 클립 보드 데이터를 일종의 큰 벡터에 덤핑하고 그 벡터로부터 read.table을 흘려 보낼까요?

+0

''read.table()'에서'quote = ""'을 시도하십시오. – MrFlick

답변

1

당신은 나를

book <-read.table("http://www.gutenberg.org/cache/epub/1342/pg1342.txt", 
sep="\n",quote="",stringsAsFactors=FALSE) 
+0

더 읽기 쉽도록 여러 줄로 코드를 분할하는 방법은 무엇입니까? – bjoseph

0

read.table 기능이 직사각형 구조로 데이터를 읽고 데이터 프레임에 넣어하기위한 것입니다이 작동

인용하지 않도록해야합니다. 나는 책의 텍스트가 일반적으로 그 패턴에 맞을 것이라고 기대하지 않는다. read.table 대신 scan 또는 readLines 함수를 사용하여 데이터를 읽는 것이 좋습니다. 따옴표 및 구분 기호를 처리하는 방법에 대한 함수의 설명서를 읽으십시오.

구두점을 계속 제거하려는 경우 ?gsub을 확인하고 모든 문자를 대문자 또는 소문자로 변환하려면 ?chartr을 참조하십시오.

+0

@Greg Snow에 추가하면 패턴이 gsub에서 ""와 일치하는 [: punct :] 문자 클래스가 있습니다. 둘째, 문자를 소문자로 변환하는 tolower() 함수가 있습니다. – lawyeR

관련 문제