我正在尝试将格式化为字符的日期字段导入POSIXlt
类,同时导入数据本身。我不想将日期作为字符导入并在以后转换为POSIXlt
,而是希望一步完成,因为我的数据非常大(4 GB以上)。下面是相同的代码。
在此代码中,我定义了一个新的' myDate'类并使用它传递给colClasses
参数。此方法适用于read.delim
,但不适用于来自fread
pkg的data.table
。
如果这可以与fread
一起使用会很棒,因为如果可行,我将使用fread
方法保存至少20分钟的时间。你可以让它与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)