Ответ 1
Вам нужно вставить as.character()
перед синтаксическим анализом как Datetime или Date.
Коэффициент всегда возвращается сначала как число, соответствующее его уровню.
Вы можете сохранить преобразование из коэффициента в символ, указав read.csv()
и т.д., чтобы не хранить в качестве фактора: stringsAsFactors=FALSE
. Вы также можете установить это как глобальную опцию.
Как только у вас есть символ, убедитесь, что вы сопоставляете строку формата с вашими данными:
R> as.POSIXct("2013-06-01 08:07:00", format="%Y-%m-%d %H:%M:%S")
[1] "2013-06-01 08:07:00 CDT"
R>
Обратите внимание на %Y-%m-%d
, который я использовал, в отличие от вашего %m/%d/%y
.
Редактировать 3 января 2016 года: теперь это намного проще благодаря пакету anytime, который автоматически преобразуется из многих типов, включая factor
и делает это, не требуя строки формата.
R> as.factor("2013-06-01 08:07:00")
[1] 2013-06-01 08:07:00
Levels: 2013-06-01 08:07:00
R>
R> library(anytime)
R> anytime(as.factor("2013-06-01 08:07:00"))
[1] "2013-06-01 08:07:00 CDT"
R>
R> class(anytime(as.factor("2013-06-01 08:07:00")))
[1] "POSIXct" "POSIXt"
R>
Как вы можете видеть, мы просто передаем переменную фактора в anytime()
, а на выходе появляется желаемый тип POSIXct.