更改列中课程的顺序

问题描述 投票:0回答:1

我有一个日期时间对象,例如:

one <- structure(1678982734, class = c("POSIXt", "POSIXct"), tzone = "UTC")
,
但是当我尝试将它与另一个数据帧连接时,其中的类会切换,例如,
two <- structure(1678982734, class = c("POSIXct", "POSIXt"), tzone = "UTC")
连接失败。我如何告诉 R 切换定义列类型的类向量的顺序?

r datetime join posixct column-types
1个回答
1
投票

这是使用

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)
}
© www.soinside.com 2019 - 2024. All rights reserved.