Страница 1 из 1

Character to DateTime в Data Frame'е

Добавлено: 19 авг 2015, 12:12
nickleb
Пожалуйста, разъясните:
в Data Frame'е есть колонка символьная для времени по маске
"YYYY-MM-DD HH:MM:SS"
Как эту колонку превратить в колонку типа DateTime, если таковой, конечно в R есть?
Мне надо получать разность значений по этой колонке между её значением в текущей строке
и в предыдущей строке в секундах.

Re: Character to DateTime в Data Frame'е

Добавлено: 19 авг 2015, 14:09
nickleb
nickleb писал(а):Пожалуйста, разъясните:
в Data Frame'е есть колонка символьная для времени по маске
"YYYY-MM-DD HH:MM:SS"
Как эту колонку превратить в колонку типа DateTime, если таковой, конечно в R есть?
Мне надо получать разность значений по этой колонке между её значением в текущей строке
и в предыдущей строке в секундах.
Решил так:

Код: Выделить всё

#"DtFr" - имя Data Frame'а; 
#"Date_Time" - имя колонки, которая содержит символьное представление даты.. 
#например: "2015-06-21 18:00:00"
> DtFr$"Date_Time"  <- as.POSIXct(DtFr$"Date_Time",format="%Y-%m-%d %H:%M:%S")

Re: Character to DateTime в Data Frame'е

Добавлено: 19 авг 2015, 22:55
sergsh
можно преобразовать через

tt<-as.POSIXlt(DtFr$"Date_Time",format="%Y-%m-%d %H:%M:%S")

и тогда доступны секунды отдельно

tt$sec

а так же доступны все другие части даты
tt$min
tt$hour
tt$mday
tt$mon

и т.д.

Re: Character to DateTime в Data Frame'е

Добавлено: 20 авг 2015, 13:22
nickleb
sergsh писал(а):можно преобразовать через

tt<-as.POSIXlt(DtFr$"Date_Time",format="%Y-%m-%d %H:%M:%S")

и тогда доступны секунды отдельно

tt$sec

а так же доступны все другие части даты
tt$min
tt$hour
tt$mday
tt$mon

и т.д.
Вот только хотел "поспрошать" о размерности вывода, а Вы ответили с упреждением. Спасибо!

Re: Character to DateTime в Data Frame'е

Добавлено: 20 авг 2015, 14:11
gamm
из личного опыта. Все эти asPosix норовят всякие timezone использовать, так что можно (учитывая фиксированный формат) выдирать числа с помощью p.YYYY<-as.integer(substr(s,1,4)) и т.д. ... а потом собрать DateTime