我有以下代码和错误消息,因为我目前正在研究电力生产的时间序列(每月)。我需要第一列的格式是日期,但当我运行代码时,它变成了NA列表...有人能帮忙吗?
下面是我尝试将列日期转换为NA列表的代码:
test_4$date <- as.numeric(as.Date(test_4$date,
format = "%Y-%m"))
我还尝试了以下方法,因为我的日期列的类是“character”:
test_4$date <- as.Date(test_4$date,
format = "%Y-%m", tryFormats = c("%Y-%m-%d", "%Y/%m/%d"), optional = FALSE)
class(test_4$date)
看到我缺少一天,我试图添加一个没有成功,因为它返回了一个NA列表:
as.Date(paste("01", test_4$date, sep="-"), "%Y-%m-%d")
我在这里看到了关于这个问题的其他帖子,所以我尝试了以下内容:
lubridate::parse_date_time("2022-01", "Ym")
它只提供了一个日期,而不是我专栏的所有日期。我还尝试了以下方法,它可以工作,但给出了字符的月份,并且没有给出我正在搜索的格式2022-01:
library(zoo)
test_4$date <- as.yearmon(test_4$date, format="%Y-%m")
以下是我的数据集test_4的结构,用于重现性:
structure(list(date = c("2022-11", "2022-10", "2022-09", "2022-08",
"2022-07", "2022-06"), production_brute_nucleaire = c(22951.429,
21465.026, 19334.531, 19319.365, 19923.664, 21275.248)), row.names = c(NA,
6L), class = "data.frame")
1条答案
按热度按时间ha5z0ras1#
奇怪的是,
lubridate::parse_date_time()
在我这边工作。但也许你只是忘记了传递test_4$date
给它(而不是字符串)?您也可以使用快捷函数ym()
,它是等效的,并返回日期而不是日期时间(这与您的输入数据更一致)。date
现在被解析的日期替换。请注意,由于您的日期中没有日期,因此返回的日期是该月的第一天。