2014-02-12 4 views
0

У меня есть очень большая база данных, и мне нужно, чтобы вычислить время, прошедшее между образцами и поместить результаты в другую колонку, так что я могу позже сделать продолжительность caculations ...Расчет времени, прошедшего между образцами в R

Я был в состоянии в основном это сделать, но мои результаты не совсем правы ...

station$datetime<-as.POSIXct(paste(station$ï..SAMPLE_DATE,station$SampleTime), format="%Y-%m-%d %H:%M:%S") 

    storder<-station[order(station$datetime),] 

    storder$timeel <- storder$datetime - storder$datetime[1] 

Этот код работает, чтобы объединить и отформатировать DateTime и привести в порядок, и это дает мне результаты истекшего времени ... Сорта .. ..

> head(storder$datetime) 
[1] "2005-06-01 09:00:01 EDT" "2005-06-01 09:15:01 EDT" "2005-06-01 09:30:01 EDT" "2005-06-01 09:45:01 EDT" 
[5] "2005-06-01 10:00:01 EDT" "2005-06-01 10:15:01 EDT" 
> head(storder$timeel) 
Time differences in secs 
[1] 0 900 1800 2700 3600 4500 

Так что мой вопрос ... Как мне заставить его не быть кумулятивным?

Что мне нужно больше вдоль линии 0 900 900 901 900 903 ЭСТ .... (и в конце концов я буду конвертировать минут)

Я искал, но я уверен, что я вы пропустили что-то простое ... снова ...

+1

Параметр 'diff' функция может быть то, что вы ищете. См. '? Diff' – Jota

+0

storder $ timeel <- c (0, storder $ datetime [-1] -storder $ datetime [-nrow (storder)]) – mdsumner

+0

Diff! Я знал, что я пропускаю что-то простое. Спасибо, парни! – Jenni4

ответ

1

использование diff как указано Frank. Чтобы изменить единицу измерения в минутах использовать

a<-diff(storder$datetime) 
units(a) <- "mins" 

P.S .: Я бы прокомментировал, но не имеют 50 репутации еще

Смежные вопросы