私はfreadを使用して読み込み、1つのデータテーブルとして保存する必要がある何百もの.csvファイルがあります。基本的な構造は.csvごとに同じです。スキップする必要があるヘッダー情報があります(スキップ=を使用すると簡単です)。各.csvファイルの最後の行をスキップするのに問題があります。各.csvファイルの行数は異なります。R data.table:各ファイルの最後の行をスキップするフォルダ内のすべての.csvファイルにfreadを使用
私はTestフォルダに一つだけのファイルを持っている場合は、このスクリプトは完全に(= NROWSを使用して)(スキップを使用して=)最初の行と最後の行をスキップします:
file <- list.files("Q:/Test/", full.names=TRUE)
all <- fread(file, skip = 7, select = c(1:7,9),
nrows = length(readLines(file))-9)
で複数のファイルを保存しますTestフォルダ、これは私が試したコードです:
file <- list.files("Q:/Test/", full.names=TRUE)
L <- lapply(file, fread, skip = 7, select = c(1:7,9),
nrows = length(readLines(file))-9)
dt <- rbindlist(L)
それはLを作成し、私は、このエラーを与えていない:
Error in file(con, "r") : invalid 'description' argument
各.csvの行数が異なる場合、各.csvの最後の行をスキップする方法については、
私はdata.tableバージョン1.9.6を使用しています。ありがとう。
'readLines'を使用しないでください。これは多くの労力を浪費します。ここのアプローチを試してみてください:http://stackoverflow.com/questions/3137094/how-to-count-lines-in-a-document – MichaelChirico
おそらく 'nrow'はファイルの下から行をスキップするために負の値を使うことができます。提出[#1643](https://github.com/Rdatatable/data.table/issues/1643)。 – Arun
'head -n-1'が' fread'に直接渡された可能性があります。あるいは末尾のフッターテキストを削除する 'grep -v '。 [この新しいページ](https://github.com/Rdatatable/data.table/wiki/Convenience-features-of-fread)のセクション1を参照してください。 –