Character to DateTime в Data Frame'е

Вопросы по статистическому пакету R. Не обязательно гео.
Ответить
nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Character to DateTime в Data Frame'е

Сообщение nickleb » 19 авг 2015, 12:12

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

nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: Character to DateTime в Data Frame'е

Сообщение nickleb » 19 авг 2015, 14:09

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")

sergsh
Активный участник
Сообщения: 205
Зарегистрирован: 20 фев 2013, 21:48
Репутация: 30

Re: Character to DateTime в Data Frame'е

Сообщение sergsh » 19 авг 2015, 22:55

можно преобразовать через

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

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

tt$sec

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

и т.д.

nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: Character to DateTime в Data Frame'е

Сообщение nickleb » 20 авг 2015, 13:22

sergsh писал(а):можно преобразовать через

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

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

tt$sec

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

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

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Character to DateTime в Data Frame'е

Сообщение gamm » 20 авг 2015, 14:11

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

Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 25 гостей