データ自体をインポートしながら、文字としてフォーマットされた日付フィールドをPOSIXlt
クラスにインポートしようとしています。日付を文字としてインポートしてPOSIXlt
後で変換する代わりに、データが非常に大きい (4 GB 以上) ため、これを 1 つのステップで実行したいと考えています。以下は同じコードです。
このコードでは、新しい「myDate」クラスを定義し、それを使用してcolClasses
引数に渡します。この方法は で機能しますが、 pkgからでは機能しread.delim
ません。fread
data.table
これが機能するようになれば素晴らしいと思います。なぜなら、これが機能する場合、この方法fread
で少なくとも 20 分の時間を節約できるからです。より良い代替案を使用したり、提案fread
したりできますか?fread
library (data.table)
library (lubridate)
setClass ('myDate')
# create custom 'myDate' class. Having "Date" or "POSIXlt" in colClasses argument of read.table does not work
setAs ("character","myDate", function(from) as.POSIXlt(fast_strptime(from, "%Y-%m-%d")) )
ccs <- c ("logical", "myDate", "myDate", "character")
# fread() Does NOT Work
rawdata <- fread ("filepath/filename.txt", colClasses=css, sep='|', header=FALSE,))
# WORKS!
rawdata <- read.delim ("filepath/filename.txt", colClasses=ccs, sep='|', header=FALSE)