Подтвердить что ты не робот

Должны быть предоставлены "даты происхождения" R

Мой код:

axis.Date(1,sites$date, origin="1960-10-01")

Ошибка:

Error in as.Date.numeric(x) : 'origin' must be supplied

Почему он спрашивает меня о происхождении, когда я поставил его в приведенном выше коде?

4b9b3361

Ответ 1

Я подозреваю, что вы имели в виду:

axis.Date(1, as.Date(sites$date, origin = "1960-10-01"))

поскольку аргумент 'x' для as.Date() должен иметь тип Date.

Как в стороне, это было бы целесообразно в качестве продолжения или редактирования вашего предыдущего вопроса.

Ответ 2

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"))

Ответ 3

Другой вариант - пакет 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.

Ответ 4

Если у вас есть данные даты и времени в числовом значении, используйте 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"

Ответ 5

В общем, это было решено, но вы можете получить это сообщение об ошибке, потому что дата, которую вы используете, не в правильном формате.

Я знаю, что это старый пост. Но всякий раз, когда я запускаю это, я получаю АН полностью вниз по моей колонке с датой. Мои даты в этом формате 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)

Я надеюсь, что это поможет некоторым из вас.