2013-07-10 2 views
0

일부 파일을 조작하고 결과를 작성하고 조작하기 전과 동일한 이름을 지정하려고합니다. 모든 파일을 저장해야하는 경로를 지정하는 방법은 무엇입니까?

읽은 파일 : 여기

코드입니다

dir2 <- list.files("/data/reprojected", "*.img", full.names = TRUE) 
    results<- list() 

컴퓨팅 :

for (.files in seq_along(dir2)){ 
    file1 <- readBin(dir2[.files], numeric(), size = 4, n = 1440*720, signed = TRUE) 
     results[[length(results) + 1L]]<- 500*file1 
    for (i in seq_along(results)){ 
    fileName <- strsplit(dir2[i],split='\\.')[[1]][1] 
    outputFile <- paste(fileName,'_rescaled','.img',sep='') 
    writeBin(as.double(results[[i]]), outputFile, size = 4)}} 

당신은 파일을 작성하는이 부분에서 볼 수 있듯이 :

for (i in seq_along(results)){ 
    fileName <- strsplit(dir2[i],split='\\.')[[1]][1] 
    outputFile <- paste(fileName,'','.img',sep='') 
    writeBin(as.double(results[[i]]), outputFile, size = 4)} 

파일이 wri가됩니다. tten과 그들이 이전에 가지고있는 것과 같은 이름을 가져갔습니다. 그러나 이전과 같은 디렉토리에 기록되며 이전 파일은 지워집니다. 내 질문은 어떻게 우리가 이전과 같은 이름을 유지 내 대구에있는 새 디렉토리 경로를 지정할 수 있습니까?

+0

불필요하게 반복되는 것처럼 보입니다. for-loop를위한 더 쉬운 인터페이스를 위해'lapply'를보고 루프를 단일 함수로 결합해야합니다. – Thomas

+0

lapply를 대신 사용할 수있는 방법에 대해 알고 싶습니다. – sacvf

+1

출력 파일을 정의하기 위해'lapply (dir2, function (x) {#a 줄과 같은 것 : \ writeBin (500 * readBin (x, numeric(), size = 4, n = 1440 * 720, signed = TRUE), outputFile, size = 4)})'. – Thomas

답변

3

dirnamebasename은 각각 경로 이름을 디렉토리 및 파일 구성 요소로 나눕니다. 이를 사용하여 자신의 디렉토리를 대체 할 수 있습니다.

fileName <- strsplit(basename(dir2[i]), "\\.")[[1]][1] 
fileName <- file.path(<new_directory>, fileName) 
... 
+0

뭔가? :'fileName <- file.path (/ donnees/rescaled, fileName)' – sacvf

관련 문제