POSIXct 停止工作并且无法更新时区

POSIXct stopped working and cannot update timezone

我正在尝试对日期进行子集化,例如此处:

  df <- data.frame(
    paste0("ID", rep(1:5)),  
    c("8/1/2019", "9/1/2019", "10/1/2019", "11/1/2019", "12/1/2019"))

  names(df) <- c("ID", "dates")

  df[as.POSIXct(strptime(df$dates, "%m/%d/%Y")) <
     as.POSIXct("10/1/2019", "%m/%d/%Y"), ]

但我收到以下警告:

    1: In strptime(xx, f, tz = tz) : unknown timezone '%m/%d/%Y'
    2: In as.POSIXct.POSIXlt(x) : unknown timezone '%m/%d/%Y'

我 运行 过去经常使用这些命令,直到现在才遇到这个问题。它从 12 月 31 日开始,所以可能是新的 year/new 十年的原因,但我不确定。

我尝试按照建议手动设置时区 ,我还从 v. 3.5.3 更新到 3.6.2。都没有解决问题。

对这里发生的事情有任何了解吗?

在你的最后一行,你有

as.POSIXct("10/1/2019", "%m/%d/%Y")

as.POSIXct 的参数是 (x, tz, ...)。要指定格式,您需要为其命名,即

df[as.POSIXct(strptime(df$dates, "%m/%d/%Y")) <
   as.POSIXct("10/1/2019", format = "%m/%d/%Y"), ]

甚至更好,

df[as.POSIXct(df$dates, format = "%m/%d/%Y") <
   as.POSIXct("10/1/2019", format = "%m/%d/%Y"), ]