【问题标题】:Unknown date column class after using lubridate make_datetime in R在 R 中使用 lubridate make_datetime 后未知日期列类
【发布时间】: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/5963269minimal reproducible examplestackoverflow.com/tags/r/info
  • @r2evans 我已经添加了前六行数据。希望这会有所帮助。
  • (1) POSIXct 时间戳需要类c("POSIXct", "POSIXt"); R 允许多类继承,这很重要,原因有很多。不要将其缩短为这两者之一。 (2) 我无法重现您对unknown 类的断言:我用来查看datadata$date 的每种方法都专门生成一个已知类。
  • 我想我应该说我使用的是 emacs/ess,而不是 RStudio ...
  • 谢谢,我的数据根本没有问题是有道理的。现在我只是好奇为什么我不能使用timeAverage,但我想这完全是另一个问题......

标签: r lubridate posixct


【解决方案1】:

这只是 RStudio 的视觉行为,在环境选项卡中,它仅显示每列的第一个类,在悬停的视图表中,它经常显示“不常见”类的未知(不确定标准是什么那)。因此,您的数据不会丢失或出错。

【讨论】:

  • 感谢您的洞察力。我最初问这个问题是因为我以前从未使用过make_datetime,并且我错误地认为列类是timeAverage 函数对我不起作用的原因。我会找到其他方法来调试我的代码:)
猜你喜欢
  • 1970-01-01
  • 2021-09-27
  • 2019-04-10
  • 1970-01-01
  • 2013-05-31
  • 1970-01-01
  • 2016-07-29
  • 1970-01-01
  • 2018-01-03
相关资源
最近更新 更多