2016-10-30 10 views
-1

다른 질문의 데이터 세트에 대한 최소한의 예를 만들려고합니다. 현재, 나는 것은 첫째 열에서 가지고 dataList.csvR에서 반복 가능한 문자열 목록 만드는 법?

P103C1.csv 
P103C2.csv 
P111C1.csv 

의사 코드를 파일 이름의 목록을 가지고 전체 파일 이름

data = read.csv("/home/masi/dataList.csv",header = FALSE,sep = ",") 
i = 1 
for (d in data) { 
     data[i] = paste("/home/masi/Documents/CSV/", d, sep="") 
     i = i + 1 
} 

그들을 추가 너무 복잡하고 errorprone 인 다음이 조 변경하지만 여전히 루프 수 없습니다 for (d in data) {...}; 그리고 내가 거기에 좋은 생각이 아닌 더 나은 및 간단한 방법이 존재한다 전치을 가진 생각,

data = t(c("P103C1.csv" "P103C2.csv" "P111C1.csv")) 

i = 1 
for (d in data) { 
     data[i] = paste("/home/masi/Documents/CSV/", d, sep="") 
     i = i + 1 
} 

사실을 다시 한번 추가.

예상 출력 : data = read.csv("/home/masi/dataList.csv",header = FALSE,sep = ",")에 해당하는 값입니다.

OS : 데비안 8.5
R : 당신은 이미 datalist.csv에있는 모든 파일이이 경우에 문자열을 만들 필요가없는 3.1.1

+0

귀하의 질문에 전혀 문제가 없습니다. –

+0

@ChirayuChamoli 예상 출력을 추가했습니다. 명확하지 않은 것을 지정할 수 있습니까? –

+0

@ ZheyuanLi 감사합니다! 내가 코멘트에서 제거하고 명시 적으로 자신의 블록으로 추가했습니다. –

답변

1

. datalist.csv에서 목록을 작성한 다음 루프에 공급하십시오.

listoffiles=list("P103C1.csv","P103C2.csv","P111C1.csv") 
files=list() 

for(i in 1:length(listoffiles)){ 
    files[[i]]=read.csv(listoffiles[[i]], header = F, sep = ',') 
    } 
+0

완벽한! 세퍼레이터 만 공백으로'sep = ""'해야만 작동합니다. –

+0

나는 그 sep를 첫 번째'read.csv' 라인을 보았다. 내 잘못이야. –

관련 문제