如何在 data.table 中使用 fast_strtime()?

How to use a fast_strtime() in a data.table?

我需要帮助才能在 data.table 中使用 fast_strptime 将字符串转换为日期格式, 我尝试了以下解决方案:

dt<-data.table(Month_Year=c("JAN 2020","FEB 2020", "MAR 2020"), val=c(1:3))
dt[,Date:=as.POSIXct(fast_strptime(Month_Year,format= "%^b %Y"))]
dt$Date<-fast_strptime(dt$Month_Year, format="%b %Y")

None 他们的工作,我感谢任何帮助! 提前致谢!

好吧,我找到了一个解决方法,不是 fast_strptime() 函数,但它符合我现在的期望:

dt[,Date:=as.Date(paste("01",Month_Year, sep=" "),format = "%d %b %Y")] 

希望对遇到同样问题的其他人有所帮助。

但我仍然对如何将 fast_striptime 与 data.table 结合使用感到困惑。 :)

这个很好用

dt[,Date:=as.POSIXct(lubridate::fast_strptime(Month_Year, "%b %Y"))]

问题是 fast_strptime() 生成了 POSIXlt 对象而不是 POSIXct 对象。 POSIXlt 基本上是一个整数列表,因此 data.table 很容易混淆,而 POSIXct 是一个单一的数值。

虽然

我可能会使用parse_date_time
dt[,Date:=lubridate::parse_date_time(Month_Year, "my")]