nzd$date <- format(as.Date(nzd$date), "%Y/%m/%d")
В приведенном выше фрагменте кода есть две ошибки.Прежде всего, когда вы читаете nzd$date
внутри as.Date
, вы не упоминаете, в каком формате вы кормите его date
.Таким образом, он пытается установить формат по умолчанию, чтобы прочитать его.Если вы видите help
документ, ?as.Date
, вы увидите
формат
Строка символов.Если он не указан, он попытается использовать «% Y-% m-% d», а затем «% Y /% m /% d» в первом элементе, отличном от NA, и выдаст ошибку, если ни один из них не работает.В противном случае обработка выполняется через strptime
Вторая ошибка: даже если вы хотите прочитать ее в формате %Y-%m-%d
, внутри format
вы написали "%Y/%m/%d"
.
Теперь правильный способ сделать это:
> nzd <- data.frame(date=c("31/08/2011", "31/07/2011", "30/06/2011"),
+ mid=c(0.8378,0.8457,0.8147))
> nzd
date mid
1 31/08/2011 0.8378
2 31/07/2011 0.8457
3 30/06/2011 0.8147
> nzd$date <- format(as.Date(nzd$date, format = "%d/%m/%Y"), "%Y-%m-%d")
> head(nzd)
date mid
1 2011-08-31 0.8378
2 2011-07-31 0.8457
3 2011-06-30 0.8147