R: Рассчитать временные точки измерения для отдельных образцов. - PullRequest
0 голосов
/ 16 октября 2018

Я измерил концентрации N2O для разных образцов (серии) в течение 10-минутных интервалов.Каждый образец измеряли два раза в день в течение 9 дней.Анализатор N2O сохраняет данные (конц.) Каждую секунду!

Мои данные теперь выглядят так:

                   DATE Series        V       A         TIME Concentration
1: 2017-10-18T00:00:00Z    O11 0.004022 0.02011 10:16:00.746     0.3512232
2: 2017-10-18T00:00:00Z    O11 0.004022 0.02011 10:16:01.382     0.3498687
3: 2017-10-18T00:00:00Z    O11 0.004022 0.02011 10:16:02.124     0.3482681
4: 2017-10-18T00:00:00Z    O11 0.004022 0.02011 10:16:03.216     0.3459306
5: 2017-10-18T00:00:00Z    O11 0.004022 0.02011 10:16:04.009     0.3459124
6: 2017-10-18T00:00:00Z    O11 0.004022 0.02011 10:16:04.326     0.3456660

Я хотел бы проанализировать потоки газа с помощью пакета R HMR.Для этого мне нужно рассчитать временные точки измерения в порядке возрастания точек данных точного времени (TIME).Время должно выглядеть примерно так (таблица взята из https://cran.r -project.org / web / packages / HMR / HMR.pdf )

Series;V;A;Time;Concentration
k0a; 140.6250; 0.5625; 0; 13.98
k0a; 140.6250; 0.5625; 10; 14.65
k0a; 140.6250; 0.5625; 20; 15.15
k0a; 140.6250; 0.5625; 30; 15.85

Как рассчитать это для каждогоиндивидуальный 10-минутный период измерения для каждого банка?В основном это должно перечислить увеличивающийся номер.секунд, пока моя машина измеряла конц.каждую секунду.

Моя идея - группировать по «Серии» и «ДАТА» и делать цикл.Вдохновленный R: вычислить разницу во времени между конкретными событиями Что-то вроде:

library(dplyr)
df.HMR %>% group_by(DATE, Series) %>% 
  mutate(time_diff = ????)

Буду очень признателен за вашу помощь!

1 Ответ

0 голосов
/ 16 октября 2018

Использование lag может решить проблему.

df.HMR=read.table(text="No DATE Series V A TIME Concentration 
              1: 2017-10-18T00:00:00Z O11 0.004022 0.02011 10:16:00.746 0.3512232 
              2: 2017-10-18T00:00:00Z O11 0.004022 0.02011 10:16:01.382 0.3498687 
              3: 2017-10-18T00:00:00Z O11 0.004022 0.02011 10:16:02.124 0.3482681 
              4: 2017-10-18T00:00:00Z O11 0.004022 0.02011 10:16:03.216 0.3459306 
              5: 2017-10-18T00:00:00Z O11 0.004022 0.02011 10:16:04.009 0.3459124 
              6: 2017-10-18T00:00:00Z O11 0.004022 0.02011 10:16:04.326 0.3456660",
                  header=T,stringsAsFactors=FALSE)

df.HMR %>% group_by(DATE, Series) %>% 
  mutate(dt=as.POSIXct(df.HMR$TIME,format="%H:%M:%S"), time_diff = dt-lag(dt))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...