Это проблема, которая возникает часто, когда я импортирую необработанные данные из регистраторов данных. Температурный регистратор настроен на запись температуры каждые десять минут, а отдельный газовый регистратор установлен для записи газа, используемого в течение последнего десятиминутного интервала. Я хочу объединить данные из этих двух регистраторов в единый кадр данных для построения и анализа, но времена не точно выровнены. Я хочу иметь одну строку в кадре данных для каждого десятиминутного периода, с датой, показывающей начало периода времени.Как я могу сопоставить данные с временными интервалами?
данные регистратор температуры выглядит следующим образом:
datetime temperature 2010-09-30 06:58:53 78.996 2010-09-30 07:08:53 78.645 2010-09-30 07:18:53 78.514 2010-09-30 07:28:53 79.173 2010-09-30 07:38:53 78.602
Данные газа регистратор выглядит следующим образом:
datetime gas 2010-09-30 13:45:00 0 2010-09-30 13:55:00 1 2010-09-30 14:05:00 0 2010-09-30 14:15:00 4 2010-09-30 14:25:00 2
Я хочу, чтобы объединить два кадра данных на десять минутные интервалы, так что комбинированные данные выглядят так:
datetime temperature gas 2010-09-30 13:40:00 NA 0 2010-09-30 13:50:00 78.996 1 2010-09-30 14:00:00 78.645 0 2010-09-30 14:10:00 78.514 4 2010-09-30 14:20:00 79.173 2 2010-09-30 07:38:53 78.602 NA
Вот код, чтобы получить эти два кадра данных:
temps <- data.frame(datetime=c("2010-09-30 06:58:53",
"2010-09-30 07:08:53","2010-09-30 07:18:53",
"2010-09-30 07:28:53","2010-09-30 07:38:53"),
temperature=c(78.996,78.645,78.514,79.173,78.602),
stringsAsFactors=FALSE)
temps$datetime <- strptime(temps$datetime, format="%Y-%m-%d %H:%M:%S")
gas <- data.frame(datetime=c("2010-09-30 13:45:00",
"2010-09-30 13:55:00","2010-09-30 14:05:00",
"2010-09-30 14:15:00","2010-09-30 14:25:00"),
gas=c(0,1,0,4,2),stringsAsFactors=FALSE)
gas$datetime <- strptime(temps$datetime, format="%Y-%m-%d %H:%M:%S")
Благодарим за ссылку на зоопарк. – Seth