2013-03-28 4 views
1

많은 문제에서 내 문제에 대한 해결책을 찾고 있었지만 답변을 찾을 수 없습니다. 디렉토리에서 읽으려고하는 파일이 12 개 있지만 아무 것도 작동하지 않는 것 같습니다. 내가 생각하는 경우, 해당 파일 또는 디렉터리를 열 수 없습니다 ("RT를"파일)파일을 읽는 중 R

files <- list.files(path="../..") 
for (i in 1:length(files)) { 
files1 <- read.table(files[i], header=TRUE, sep="",skip=5) 
} 

는 오류 파일을 말한다 : 은 내가 처음에이 시도 :

files <- list.files(path="../..") 
files1 <- lapply(files, read.table, header=TRUE, sep="", skip=5) 

이것은 > 파일을 열면 모든 파일이 나열됩니다.

어디서 실수입니까? tx

+1

권한 문제와 같은 것 같습니다. Windows? –

+2

'list.files (path = "../ ..", full.names = TRUE)'을 시도하십시오. – BenBarnes

+0

그냥 나야, 아니면 한 경로의 파일을 나열하고 다른 경로에서 파일에 액세스하려고합니까? –

답변

4

list.files은 전체 경로 이름이 필요할 때 파일 이름을 제공합니다. 나는 plyr를 사용하는 것을 선호 @BenBarnes가 지적 하듯, list.files()

+0

예 ** full.names **로 작업했습니다. 이제 각 파일의 3 열이있는 첫 행만 목록으로 가져 가고 싶습니다. 이 방법으로 처리 할 수 ​​있습니까? – Marco

+1

@ user2207085'read.table'에는'nrows' 인수가 있습니다. –

+2

@ user2207085 결과 객체를 coulmns (예 : 질문에 답한 후 새로운 질문과 조건을 추가하는 것을 중지하십시오. (read.table (files [i], header = TRUE, sep = "", skip = 5, nrow = 1)) [, 1 : 3] 시작하기 위해 문제의 개요를 설명하거나, 상황이 필요한 경우 새로운 질문을하십시오. –

0

full.names 인수를 사용하는 것입니다, paste("path/to/files/", files, sep="/")

다른 옵션 :

하나의 옵션은 파일 목록의 전체 경로를 붙여 넣는 것입니다 이런 종류의 것을위한 패키지. 당신이 파일을 사용하여 계획하는 방법에 따라 다른 리터 * 플라이 기능을 사용 할 수 있습니다

require(plyr) 
files <- dir("../..", full= TRUE) 
data <- llply(files, read.table, header= T, sep= "", skip= 5) 

이 당신에게 12 (또는 그러나 많은) 데이터 세트의 목록을 제공합니다.