【发布时间】:2021-10-27 10:10:14
【问题描述】:
我有 6 个数字列,分别是年、月、日、小时、分钟和秒,并在 lubridate 包中使用 make_datetime 将它们组合在一起,如下所示:
data$date <- make_datetime(year = data$Year, month = data$Month, day = data$Day, hour = data$Hour, min = data$Min, sec = data$Sec)
但是,新日期列的类是unknown。当我使用class(data$date) 进行调查时,它返回"POSIXct" "POSIXt"。我尝试使用以下方法修复它:
class(data$date) <- "POSIXct"
当我将鼠标悬停在数据表的标题上时,类仍然未知。但是当我在命令行中输入class(data$date) 时,它会返回"POSIXct"。我怀疑我没有解决这个问题,因为我无法使用其他功能,例如timeAverage (openair)。
有谁知道这对于make_datetime 是否正常,我是否可以解决这个问题?谢谢
编辑
这是head(data)
Year Month Day Hour Min Sec Date
1: 1979 1 1 0 0 0 1979-01-01 00:00:00
2: 1979 1 1 1 0 0 1979-01-01 01:00:00
3: 1979 1 1 2 0 0 1979-01-01 02:00:00
4: 1979 1 1 3 0 0 1979-01-01 03:00:00
5: 1979 1 1 4 0 0 1979-01-01 04:00:00
6: 1979 1 1 5 0 0 1979-01-01 05:00:00
【问题讨论】:
-
这将更容易帮助使用示例数据进行故障排除,请参阅stackoverflow.com/q/5963269、minimal reproducible example 和 stackoverflow.com/tags/r/info。
-
@r2evans 我已经添加了前六行数据。希望这会有所帮助。
-
(1)
POSIXct时间戳需要类c("POSIXct", "POSIXt"); R 允许多类继承,这很重要,原因有很多。不要将其缩短为这两者之一。 (2) 我无法重现您对unknown类的断言:我用来查看data和data$date的每种方法都专门生成一个已知类。 -
我想我应该说我使用的是 emacs/ess,而不是 RStudio ...
-
谢谢,我的数据根本没有问题是有道理的。现在我只是好奇为什么我不能使用
timeAverage,但我想这完全是另一个问题......