Мой код:
axis.Date(1,sites$date, origin="1960-10-01")
Ошибка:
Error in as.Date.numeric(x) : 'origin' must be supplied
Почему он спрашивает меня о происхождении, когда я поставил его в приведенном выше коде?
Мой код:
axis.Date(1,sites$date, origin="1960-10-01")
Ошибка:
Error in as.Date.numeric(x) : 'origin' must be supplied
Почему он спрашивает меня о происхождении, когда я поставил его в приведенном выше коде?
Я подозреваю, что вы имели в виду:
axis.Date(1, as.Date(sites$date, origin = "1960-10-01"))
поскольку аргумент 'x' для as.Date()
должен иметь тип Date
.
Как в стороне, это было бы целесообразно в качестве продолжения или редактирования вашего предыдущего вопроса.
My R use 1970-01-01:
>as.Date(15103, origin="1970-01-01")
[1] "2011-05-09"
и это соответствует расчету из
>as.numeric(as.Date(15103, origin="1970-01-01"))
Другой вариант - пакет lubridate
:
library(lubridate)
x <- 15103
as_date(x, origin = lubridate::origin)
"2011-05-09"
y <- 1442866615
as_datetime(y, origin = lubridate::origin)
"2015-09-21 20:16:55 UTC"
Из документов:
Origin - это дата и время для UTC 1970-01-01 в формате POSIXct. Эта дата-время является источником для системы нумерации, используемой классами POSIXct, POSIXlt, chron и Date.
Если у вас есть данные даты и времени в числовом значении, используйте as.POSIXct
. Формат IDateTime пакета Data.table - такой случай. Если вы используете fwrite
для сохранения файла, пакет автоматически преобразует дату-время в формат idatetime, который является временем unix. Чтобы преобразовать обратно в нормальный формат, можно сделать следующее.
Пример: скажем, у вас есть отметка времени unix с информацией о дате и времени: 1442866615
> as.POSIXct(1442866615,origin="1970-01-01")
[1] "2015-09-21 16:16:54 EDT"
В общем, это было решено, но вы можете получить это сообщение об ошибке, потому что дата, которую вы используете, не в правильном формате.
Я знаю, что это старый пост. Но всякий раз, когда я запускаю это, я получаю АН полностью вниз по моей колонке с датой. Мои даты в этом формате 20150521 - NealC 5 июня 15 в 16:06
Если у вас есть даты этого формата, просто проверьте формат ваших дат с помощью:
str(sides$date)
Если формат не символьный, преобразуйте его:
as.character(sides$date)
Для as.Date вам больше не понадобится источник, потому что он предоставляется только для числовых значений. Таким образом, вы можете использовать (при условии, что у вас есть формат NealC):
as.Date(as.character(sides$date),format="%Y%m%d)
Я надеюсь, что это поможет некоторым из вас.