R 读取csv文件时解析日期格式
我正在使用R 读取csv文件时解析日期格式,r,data.table,R,Data.table,我正在使用data.table包读取csv文件 样本数据集: 结构(列表大小=c(4886L、4096L、84848L、518L、264158L、, 725963L、1340L、75264L、198724L),修改后的时间=c, “2008年8月21日03:54:28下午”、“2007年2月12日12:40:00下午”、“2006年8月22日02:12:03下午”, “2009年12月08日03:28:14下午”、“2008年9月29日03:45:21下午”、“2011年9月07日03:36:5
data.table
包读取csv文件
样本数据集:
结构(列表大小=c(4886L、4096L、84848L、518L、264158L、,
725963L、1340L、75264L、198724L),修改后的时间=c,
“2008年8月21日03:54:28下午”、“2007年2月12日12:40:00下午”、“2006年8月22日02:12:03下午”,
“2009年12月08日03:28:14下午”、“2008年9月29日03:45:21下午”、“2011年9月07日03:36:54上午”,
“2011年7月28日下午05:09:58”、“2012年7月23日下午02:25:58”),访问时间=c(“2013年3月15日上午09:24:53”,
“2009年5月12日04:45:41下午”、“2014年4月7日09:39:03上午”、“2007年12月25日06:48:18上午”,
“2013年4月8日上午11:52:15”、“2011年5月17日上午8:48:40”、“2013年3月12日上午02:55:01”,
“2014年6月7日04:21:28下午”、“2013年1月21日12:58:07下午”),contentid=c(“000000 285B7925F511B3159A72F80A4A”,
“0000011afae4d1227c4df57b410ea52c”、“000001cec02017ca3eb81ddc4cd1c9ff”,
“00000233565d1c17c3135a9504c455ca”、“000003020ba74b9d1b6075d3c1b8fcb3”,
“0000034b98d29d84ce7b61ee68be7658”、“000004ed899e26ae1c9b1ece35a98af1”,
“000005a09fd2eb706c5800eb06084160”、“0000060b9d552c35f281b5033dcfa1b4”
)),row.names=c(NA,-9L),class=c(“data.table”,“data.frame”
),.internal.selfref=)
加载时,我可以指定要读取的列的类型,例如:
tble=fread(“sample.csv”,colClasses=c(Size=“numeric”,contentid=“character”))
我的问题是:
将日期列转换为.date(示例$AccessTime,“%b%d,%Y%H:%M:%S%p”)
但我是否可以在加载时指定此格式,以便将该列读取为datetime列而不是字符PS:注意,我必须使用
data.table
,因为我的csv文件非常大~5GB。请参阅。(BTW,我不认为你的假设是正确的)。有什么可以解决你的问题吗?为了更快的串到日期转换,考虑<代码>任意时间< /代码>包,或者看到这里我同意@ 27×9…我不希望任何带分隔符的文件读取器运行得更快,甚至不会像将字符串就地转换为Date
或POSIXt
那样快;充其量也会稍微慢一点。我希望这种就地转换与“读取文件+as.Date
”大致相同,在这种情况下,在读入过程中执行此转换的唯一优点是用于代码转换。我觉得解析器可能会更快。首先是内存分配(即不需要分配一个字符,然后再分配一个数字向量),然后还有一个事实,strtime()
似乎很慢,这就是为什么会有这样的包。话虽如此,制作一个解析器来处理各种格式所需的时间将花费。。。有很多时间要做。相关的,现在确实读取了一些字符串作为IDate,但此POSIXct不计算在内。对于OP,我认为答案是否定的。