Другая возможность - не изменять функцию sqldf
, а затем конвертировать даты, сохраненные в виде цифр. Вы можете использовать as.Date()
для этого:
zoo::as.Date(16623)
[1] "2015-07-07"
Как уже упоминалось LyzandeR, вы должны указать origin
, который гласит, что первая дата. Если вы используете пакет zoo
, по умолчанию используется «1970-01-01», и для вашего формата это, вероятно, правильное начало, но если вы его не используете (это означает, что вы подаете в суд на функцию из пакета base
, тогда вы должны укажите его.
as.Date(16623, origin = "1970-01-01")
[1] "2015-07-07"
Но если вы имели даты в Excel, вы должны изменить происхождение:
zoo::as.Date(42313)
[1] "2085-11-06"
as.Date(42313, origin = "1899-12-30") # for Windows, use "1904-01-01" for Mac
[1] "2015-11-05" # correct result
Я на самом деле обнаружил, почему не поставляет origin
работал для меня: у меня был пакет zoo
загружен, в котором «1970 -01-01" опция по умолчанию для origin
:
base::as.Date(16623)
Error in as.Date.numeric(16623) : 'origin' must be supplied
zoo::as.Date(16623)
[1] "2015-07-07"
Вот коды, где вы можете увидеть, что zoo
указывает defau л origin
для функции as.Date.numeric
, которая не относится к base
пакета:
base::as.Date.numeric
function (x, origin, ...)
{
if (missing(origin))
stop("'origin' must be supplied")
as.Date(origin, ...) + x
}
<bytecode: 0x17190e78>
<environment: namespace:base>
zoo::as.Date.numeric
function (x, origin, ...)
{
if (missing(origin))
origin <- "1970-01-01"
if (identical(origin, "0000-00-00"))
origin <- as.Date("0000-01-01", ...) - 1
as.Date(origin, ...) + x
}
<environment: namespace:zoo>
SO создает долгосрочную полезную информацию для текущих и будущих читателей. Вопросы должны быть автономными с минимальным кодом и данными, необходимыми, чтобы читатели могли скопировать его из вопроса и вставить его в текущую сессию R и посмотреть, что видит плакат. Данные должны быть частью вопроса, а не в другом месте, чтобы гарантировать, что он по-прежнему доступен. Используйте команду R 'dput (X)' для предоставления X в воспроизводимой форме. См. (1) http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example (2) http://stackoverflow.com/help/mcve (3) http: //stackoverflow.com/help/how-to-ask –