我有一个日期时间对象,例如:
one <- structure(1678982734, class = c("POSIXt", "POSIXct"), tzone = "UTC")
,two <- structure(1678982734, class = c("POSIXct", "POSIXt"), tzone = "UTC")
连接失败。我如何告诉 R 切换定义列类型的类向量的顺序?
这是使用
class = c("POSIXt", "POSIXct")
创建对象的任何内容的错误。正如 @MrFlick 评论的那样 “类”向量应该按继承顺序排列。 “POSIXct”继承自“POSIXt”,而不是相反。
此外,“POSIXt”是一个“虚拟”类,这意味着您无法创建一个只是
class = "POSIXt"
的对象。它存在的唯一原因是“POSIXct”和“POSIXlt”对象可以一起操作(例如,从“POSIXlt”对象中减去“POSIXct”对象)。
正如 MrFlick 所说,如果类向量格式错误,你可以反转它。
check_posix_class <- function(x) {
if (identical(class(x), c("POSIXt", "POSIXct"))) {
class(x) <- rev(class(x))
}
return(x)
}