Я думаю, причина этого в том, что as.Date
преобразует аргументы в объекты даты класса. В этом случае вам не нужна дата, а объект класса POSIXct
, потому что ваш ввод, вектор x
, содержит другую информацию, которой as.Date
не может управлять. Другая проблема, которая может возникнуть даже с правильной функцией, заключается в том, что если вы не укажете правильный часовой пояс с аргументом tz
(за исключением случая, когда ваш часовой пояс совпадает с исходным временем).
Следующий код выполняет свою работу.
x <- 1435617000
as.POSIXct(x, origin = "1970-01-01", tz ="GMT")
[1] "2015-06-29 22:30:00 GMT"
Используйте as.Date
На тот случай, если вам нужна только дата, но у вас есть полное время Unix, например x
, вам нужно просто разделить на 86400
(то есть количество секунд в день!), Чтобы получить только правильную дату.
as.Date(x/86400L, origin = "1970-01-01")
[1] "2015-06-29"
Еще одна важная деталь
Аргумент origin
должен быть предоставлен с YYYY-MM-DD
, а не так, как вы DD-MM-YYYY
Я не уверен, но я думаю, что первый является единственным приемлемым и правильным способом.
person
SabDeM
schedule
23.07.2015