2011-12-19 2 views
2

read.csv()를 사용하여 R (Linux)에서 CSV 파일을 읽으려고합니다. 함수가 완료되면 R에서 읽은 행 수가 CSV 파일의 행 수보다 적음을 알게됩니다 (wc -l에서 가져옴). 또한 특정 CSV 파일을 읽을 때마다 항상 같은 줄이 생략됩니다. CSV 파일에서 서식 오류를 확인했지만 모든 것이 잘 보입니다.R 프로그래밍 : read.csv()가 예기치 않게 라인을 건너 뜁니다.

그러나 다른 CSV 파일로 건너 뛴 줄을 추출하면 R이 해당 파일에서 매우 많은 줄을 읽을 수 있습니다.

내 문제가 될 수있는 곳을 어디에도 찾을 수 없습니다. 어떤 도움이라도 대단히 감사합니다.

+2

아마도 문제를 재현 할 수 있도록 일부 데이터를 게시 할 수 있습니까? –

+0

다음은 내가 읽으려고하는 CSV 파일에 대한 링크입니다 - http://dl.dropbox.com/u/6967747/bugs.csv –

+1

'quote = ""'; '? read.csv'를보십시오 –

답변

11

다음은 count.fields을 사용하여 어디서 보는지 결정하고 수정 사항을 적용 할 수있는 예입니다. ("#", 해시 징후)

txt <-readLines("~/Downloads/bugs.csv")[ 
       which(count.fields("~/Downloads/bugs.csv", quote="", sep=",") == 23)] 

그리고 그들은 octothorpes했다 : 내가 함께 23 보았다

> table(count.fields("~/Downloads/bugs.csv", quote="", sep=",")) 
    2  23  30 
    502  10 136532 
> table(count.fields("~/Downloads/bugs.csv", sep=",")) 
# Just wanted to see if removing quote-recognition would help.... It didn't. 
    2  4  10  12  20  22  23  25  28  30 
11308  24  20  33 642 251  10  2 170 124584 
> which(count.fields("~/Downloads/bugs.csv", quote="", sep=",") == 23) 
[1] 104843 125158 127876 129734 130988 131456 132515 133048 136764 
[10] 136765 

: 당신은 폭 23 '필드'입니다 라인의 겸손한 번호가 이는 R 자료에서 주석 문자입니다. 그래서

> table(count.fields("~/Downloads/bugs.csv", quote="", sep=",", comment.char="")) 
    30 
137044 

는 .... read.table에서 이러한 설정을 사용하면 "갈 수"있어야한다.

+0

'count.fields'의 위대한 데모 –

+0

정말 대단합니다! 도와 줘서 고마워요! –

관련 문제