Страница 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