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)}

ファイルは以前と同じ名前で書き込まれ、問題はありません。ただし、以前と同じディレクトリに書き込まれ、以前のファイルは消去されます。私の質問は、cod で新しいディレクトリへのパスを指定するにはどうすればよいですか (以前と同じ名前を保持します)。

4

1 に答える 1

3

dirnameパス名をそれぞれディレクトリとファイルのコンポーネントにbasename分割します。これを使用して、独自のディレクトリを置き換えることができます。

fileName <- strsplit(basename(dir2[i]), "\\.")[[1]][1]
fileName <- file.path(<new_directory>, fileName)
...
于 2013-07-10T13:23:55.627 に答える