2013-10-21 4 views
0

다음과 같은 형식의 300 * .csv 파일이 있습니다. 파일 이름은 1에서 300까지 다른 인덱스로 동일합니다 (예 : myarray.1.csv myarray .2.csv .... myarray.300.csv)"for 루프"에서 "read.csv"사용

 -124.5 -123.5 -122.5 -121.5 -120.5 -119.5 -118.5 
31.5 0 0 0 0 0 0 0 
32.5 0 0 0 0 0 0 0 
33.5 0 0 0 0 0 0 0 
34.5 0 0 0 0 0 1.1 5980.4 
35.5 0 0 0 0 0 0 41 
36.5 0 0 0 0.1 0 0 56 
37.5 0 0 0 0 0 2.4 0 
38.5 0 0 1 0 0.3 0.3 0 
39.5 0 0 0 0 4.1 0.1 0 

헤더 경도이며, 첫 번째 열은 위도와 다른 배열은 상대 값이다.

"for-loop"와 "write.csv"를 사용하여 하나씩 읽어 들이고 헤더와 첫 번째 열을 버리는 방식으로 행렬로 변환하려고합니다. 종료. 나는이 명령을 사용하지만, 작동하지 않는 것 같다

setwd("C:/Users/WF") 
for (i in 1:300) { 
file_new_name <- myarray 
file_new_name <- paste(file_new_name,i,sep=".") 
file_new_name <- paste(file_new_name,".csv",sep="") 
file_read  <- read.csv(file_new_name,header=TRUE) 
} 
+0

쉼표가 없으므로 이는 csv 형식이 아닙니다. 실제로 파일이 어떻게 보이면 대신'read.table'을 사용하십시오. – mrip

+0

두 개의 붙여 넣기 단계를'sprintf'를 한 번 호출하면됩니다 : sprintf ('file_name % d.csv', i)'. –

답변

3
이 같은 패턴은 제 생각에 가장 적합한, 그리고 스타일에 매우 R-처럼

가 :

list_of_files = list.files("c:/User/WF", pattern = '*csv') 
list_of_csv = lapply(list_of_files, read.csv) 
big_object = do.call('rbind', list_of_csv) 

내가 여기에 가정 읽으려는 모든 CSV 파일은 c:/User/WF에 있습니다.

직접 내용을 작성해야하지만 시작해야합니다.

+0

@ Paul Hiemstra; 감사. 그것은 효과가 있었다. 그것들을 묶는 것이 내가 원하는 것을하는 가장 좋은 방법 인 것 같습니다. – SaZa