2017-10-29 3 views
1

나는 무슨 일이 일어나고 있는지 알 수 없습니다. R에서 UTF-8 txt 파일을 읽으려고합니다. 값은 탭으로 구분됩니다. 파일에서 발췌 한 다음과 같은 :R은 txt 파일에서 일부 데이터 만 경고하고 읽지 않습니다.

LOCATION  FORM TAG FEATURES 
1 (1:1:1:1)   bi P PREFIX|bi+ 
2 (1:1:1:2)  somi N STEM|POS:N|LEM:{som|ROOT:smw|M|GEN 
3 (1:1:2:1) {ll~ahi PN STEM|POS:PN|LEM:{ll~ah|ROOT:Alh|GEN 
4 (1:1:3:1)   {l DET PREFIX|Al+ 
5 (1:1:3:2) r~aHoma`ni ADJ STEM|POS:ADJ|LEM:r~aHoma`n|ROOT:rHm|MS|GEN 
6 (1:1:4:1)   {l DET PREFIX|Al+ 

파일이 여기에 Quranic Arabic Corpus Downloads

내가 파일을 읽는 시도하는 방법 중 하나에서 다운로드 할 수 있습니다

test <- read.csv(file = "quranic-corpus-morphology-0.4.txt", 
       sep = "\t", header = TRUE, skip = 56, 
       stringsAsFactors = FALSE) 

이 문제는 번호입니다 읽혀지는 레코드의 레코드 수의 차이를 쉽게 볼 수 있습니다. read.csv은 경고없이 77109 레코드를 반환합니다. LibreOffice Calc에서 동일한 파일을 여는 반면 128219 개의 레코드가 있습니다. 파일을 읽기

read.table를 통해 :

test <- read.table(file = "quranic-corpus-morphology-0.4.txt", 
       sep = "\t", header = TRUE, 
       skip = 56, stringsAsFactors = FALSE) 

반환

무엇 9 월 = 9월, 인용 = 인용 12 월 =하는 dec = 무엇 스캔 (파일 = 파일에 오류 : 를 78 행에는 4 개의 요소가 없었습니다

78 번째 줄에는 무엇이 잘못된 것인지 알 수 없었습니다.

, 나는 심지어 시도 깨끗한 CSV를 얻을이 경고를 반환 LibreOffice와 캘크에서 CSV로 저장하려면

현재 선택된 파일 형식으로 저장할 수 없습니다 서식이나 콘텐츠가 포함되어있을 수 있습니다이 문서 "텍스트 CSV" .

라인 135-140은 :

(2:7:4:1) quluwbi N  STEM|POS:N|LEM:qalob|ROOT:qlb|FP|GEN 
(2:7:4:2) himo PRON SUFFIX|PRON:3MP 
(2:7:5:1) wa  CONJ PREFIX|w:CONJ+ 
(2:7:5:2) EalaY` P  STEM|POS:P|LEM:EalaY` 
(2:7:6:1) samoEi N  STEM|POS:N|LEM:samoE|ROOT:smE|M|GEN 
(2:7:6:2) himo PRON SUFFIX|PRON:3MP 
+0

포함 할 수 있습니다? 이 오류는 R이 4 개의 열을 찾지 못했다는 것, 즉 4 열 미만 또는 4 열을 찾은 것 같습니다. –

+0

저작권 텍스트가있는 처음 56 줄을 건너 뛰고 있습니다. 따라서 78은 상대적입니다. 어떤 행 번호를 포함시켜야합니까? –

+0

가능한 경우 135-140을 포함하십시오. 그러나 먼저이 줄의 데이터가 올바른지 확인하십시오. –

답변

2

당신은 다른 문자로 데이터에 따옴표를 치료하기 위해 R에게 그렇지 않으면거야 월말까지 문자열로의 나머지 부분을 치료하는 것 필요 견적,

라인 62 (56 라인 건너 뛰기 후)는 '이 4 열 STEM|POS:V|IMPF|(IV)|LEM:'aAmana|ROOT:Amn|3MP에있는 것으로 보입니다.

시도 :

test <- read.csv(file = "quranic-corpus-morphology-0.4.txt", 
       sep = "\t", header = TRUE, skip = 56, 
       stringsAsFactors = FALSE, quote="") 

출력 : 당신이 당신의 질문에 라인 (78)

> str(test) 
'data.frame': 128219 obs. of 4 variables: 
$ LOCATION: chr "(1:1:1:1)" "(1:1:1:2)" "(1:1:2:1)" "(1:1:3:1)" ... 
$ FORM : chr "bi" "somi" "{ll~ahi" "{l" ... 
$ TAG  : chr "P" "N" "PN" "DET" ... 
$ FEATURES: chr "PREFIX|bi+" "STEM|POS:N|LEM:{som|ROOT:smw|M|GEN" "STEM|POS:PN|LEM:{ll~ah|ROOT:Alh|GEN" "PREFIX|Al+" ... 
+0

평판이 충분하지 않기 때문에 위의 설명에 추가 할 수 없습니다. 그래서 답으로 추가되었습니다. –

관련 문제