渡された最初のファイル以外のすべての最初の行を削除する既存の同等のものはありませんfile.append()
。しかし、これは R であるため、以下に示すように、それを行う関数を作成できます。
とを使用するreadLines()
と、とを使用するよりもcat()
で生成されたファイルに似たファイルが出力されます。大きなファイルの場合も高速になります。 file.append()
read.table()
write.table()
file.trim.append <- function(fnames, outfile) {
## Take header lines from first file
cat(readLines(fnames[1], n = 2), file = outfile, sep = "\n")
## Append all but first two lines of each
lapply(fnames, function(fname) {
cat(readLines(fname)[-1:-2], file = outfile,
sep = "\n", append = TRUE)
})
}
## Try it out
write.table(head(mtcars), file="file1.txt")
write.table(head(mtcars), file="file2.txt")
write.table(head(mtcars), file="file3.txt")
ff <- dir(pattern = "^file[[:digit:]]*.txt")
file.trim.append(ff, "file123.txt")