2013-08-14 3 views
0

특정 .csv의 데이터를 조작하고 다른 하나에 데이터를 쓰는 코드를 작성하려고합니다. 각 줄을 하나씩 읽고 작업을 수행하고 싶습니다. 또한 .csv에서 특정 줄을 읽으려고합니다. 그러나 그 줄과 줄 앞에 오는 것은 무엇입니까. 저는 R 언어의 초보자입니다. 그래서 약간 혼동스러운 구문을 발견합니다. R 언어로 된 CSV 파일의 특정 줄 읽기

testconn<=file("<path>") 
    num<-(length(readLines(testconn))) 
    for(i in 1:num){ 
    num1=i-1 
    los<=read.table(file="<path>",sep=",",head=FALSE,skip=num1,nrows=1)[,c(col1,col2)] 
    write.table(los,"<path>",row.names=FALSE,quote=FALSE,sep=",",col.names=FALSE,append=TRUE) 
    } 

, 나는 현재 사용하고있는 코드는 desiored 출력을주고있다 생각하지만 매우 느린 내 .CSV 데이터 파일은 43,200 라인을 가지고있다.

+1

는이'read.table을 찾고 계십니까 (파일 = 9 월 = ","머리를 = FALSE) [2]'? – agstudy

+0

nope BTW 내가 nrows의 조합을 사용하여 솔루션을 발견하고 read.table 함수에서 건너 뜁니다. –

+0

SO에서 자신의 질문에 대답하는 것이 좋습니다. BTW : 귀하의 솔루션을 이해하지 못합니다 ... – agstudy

답변

2
  1. 코드가 작동하지 않습니다.
  2. 귀하의 코드이며 매우 innefficient입니다 - 당신은 비교 연산자 < = 및 할당 한 <을 혼동. read.tablewrite.table43200 번을 호출하여 단일 파일을 읽고 쓰십시오.

당신은 단순히이 작업을 수행 할 수 있습니다

los<- read.table(file="<path>",sep=",")[,c(col1,col2)] 
    res <- apply(los,1,function(x){## you treat your line here} 
    write.table(res,"<path_write>",row.names=FALSE, 
         quote=FALSE,sep=",",col.names=FALSE)