我有一个包含日期的列,格式为10/17/2017 12:00:00 AM
。我想解析字符串并仅保留日期部分作为类Date
,即2017-10-17
。我正在使用 -
df$ReportDate = as.Date(df$ReportDate, format = "%m/%d/%Y %I:%M:%S %p")
df$ReportDate = as.Date(format(df$ReportDate, "%Y-%m-%d"))
这个方法可以运行,但是数据框中有超过500万行,所以需要接近两分钟的时间。
user system elapsed
104.73 0.55 105.46
有没有更快、更有效的方法来完成这个任务?
datatable
包中的fread
函数。 - Dinesh.hmndf <- rep("8/31/2017 12:30:00 pm", 5e6); df <- as.Date(df, format = "%m/%d/%Y %I:%M:%S %p"); df1 <- as.Date(format(df, "%Y-%m-%d")); all(df == df1)
- emilliman5strptime
。 - Dinesh.hmnfasttime
包大约可以加快2倍速度。 - Gregor Thomasas.Date("10/17/2017 12:00:00 AM", format = "%m/%d/%Y")
就足够了。"每个输入字符串都会根据指定的格式进行必要的处理:任何尾随字符都将被忽略。" - Henrik