0

1 つの大きな列から 141 x 131 のマトリックスを作成し、それをテキスト ファイルとしてエクスポートするコードがあります。これまでのところ、うまく機能しています。ASCII からラスターへの変換ツールを使用して、これらのファイルを ArcGIS にインポートします。ArcGIS がそれらをインポートするには、5 行のヘッダーが必要で、ヘッダーの後にデータが次のように続きます。

NCOLS 131
NROWS 141
XLLCENTER -150
YLLCENTER -70
CELLSIZE 1
NODATA_VALUE -32768
265 41.7 1.8 12 16 18.3 16.5 18.3 19.7 24.5 26.1 28.4...

R がテキスト ファイルを保存したら、このヘッダーを手動で貼り付けるのは簡単ですが、処理する必要があるファイルが 900 個以上あるため、テキスト ファイルをエクスポートするときに R にヘッダーを追加してもらいたいと考えています。それは可能ですか、それともマトリックスの最初の 5 行としてヘッダー行を追加してエクスポートできますか?

編集: 以下のこのセクションは、コメントで尋ねた追加の質問に関するものです。

ここに私のコード全体があります:

batch_tpose <- function(filename) {
dat <- matrix(scan(file = filename),ncol=3,byrow=T)
dat_trans <- matrix(dat[,3], 141, byrow=FALSE)

header <- "NCOLS 131
NROWS 141
XLLCENTER -150
YLLCENTER -70
CELLSIZE 1
NODATA_VALUE -32768"

writeLines(header, filename)
write.table(dat_trans, file = filename, row.names=FALSE, col.names=FALSE, append=TRUE)

## This works, I just need the output to be something like out/filename...


}

batch_tpose("200RelVort-nwatl-20201008-15.txt")

batch_tposeを使用して、下部のコマンドで一連のファイルを処理できるようにしたいlist.files。現在、1つのファイルでテストしています。これは機能しますが、ファイルを作業ディレクトリに書き込みます。同じディレクトリにあるため、ソース ファイルも上書きされます。出力ファイルを「out」ディレクトリに書き込むにはどうすればよいですか? 試してみましout/filenamefile = out/filenameが、「ファイル名」という名前の新しいファイルが作成されます。他の組み合わせを試しましたが、エラーが発生しました。

4

1 に答える 1