У меня есть два набора данных из эксперимента на человека при различных температурах окружающей среды. P1 представляет данные физиологического ответа пациента и P1IAQ представляют данные мониторинга окружающей среды во время эксперимента. P1 записывал данные 32 раза в секунду, но P1IAQ записывал данные каждые 10 секунд.Синхронизация и построение наборов данных с двумя таймерами в R
head(P1IAQ)
Time RH Temp CO2
1 12:04:07 44.2 19.89 664
2 12:04:17 44.2 19.89 664
3 12:04:27 44.2 19.89 665
4 12:04:37 44.2 19.89 665
5 12:04:47 44.2 19.89 666
6 12:04:57 44.2 19.89 668
head(P1)
Time SkinTemp HeartRate RespirationRate
1 00:00:00 27.781 70 10
2 00:00:00 27.780 70 10
3 00:00:00 27.779 70 10
4 00:00:00 27.779 70 10
5 00:00:00 27.778 70 10
6 00:00:00 27.777 70 10
Проблема заключается в том, что временная метка на P1 неверна. Как я могу построить их вместе на одном и том же графике, чтобы узнать, имеет ли SkinTemp временную задержку после снижения темпов окружающей среды?
EDIT: dput для P1IAQ Я добавил первые двадцать значения для данных об окружающей среде. Я думаю, лучше всего было бы вычесть 12:04:07 из всех значений, чтобы сделать время начала 00:00:00. Я попытался взглянуть на лубридата.
library(lubridate)
P1IAQ$Time<-hms(P1IAQ$Time)
Это сообщение datetime выглядит интересно, но оно предназначено для печати дат, а не для их изменения. Plotting data against time in R
dput(P1IAQ)
structure(list(Time = structure(1:19, .Label = c("12:04:07",
"12:04:17", "12:04:27", "12:04:37", "12:04:47", "12:04:57", "12:05:07",
"12:05:17", "12:05:27", "12:05:37", "12:05:47", "12:05:57", "12:06:07",
"12:06:17", "12:06:27", "12:06:37", "12:06:47", "12:06:57", "12:07:07"
), class = "factor"), RH = c(44.2, 44.2, 44.2, 44.2, 44.2, 44.2,
44.2, 44.2, 44.1, 44.1, 44.2, 44.2, 44.2, 44.3, 44.2, 44.2, 44.2,
44.3, 44.3), Temp = c(19.89, 19.89, 19.89, 19.89, 19.89, 19.89,
19.89, 19.89, 19.89, 19.89, 19.94, 19.89, 19.94, 19.94, 19.94,
19.94, 19.94, 19.94, 19.94), CO2 = c(664L, 664L, 665L, 665L,
666L, 668L, 668L, 669L, 667L, 670L, 670L, 672L, 675L, 677L, 682L,
684L, 685L, 686L, 687L)), .Names = c("Time", "RH", "Temp", "CO2"
), class = "data.frame", row.names = c(NA, -19L))
EDIT: Я синхронизировал раз с помощью lubridate:
P1IAQ$Time<-period_to_seconds(hms(as.character(P1IAQ$Time))-hms("12:04:07"))
P1$Time<-period_to_seconds(hms(as.character(P1$Time)))
Но теперь черчения их вместе сложно. Я пробовал ggplot2, но я не могу получить две вертикальные оси. Любые мысли
ggplot() +
geom_line(data = P1IAQ, aes(x = Time, y = Temp, color = "red")) +
geom_line(data = P1, aes(x = Time, y = Temp, color = "blue")) +
xlab('Time (s)') +
ylab('Temperature ºC')
Когда вы говорите, что метка времени 'P1' неправильно, вы имеете в виду, что есть постоянное смещение от истинного времени? Если да, то что такое смещение? – eipi10
@ eipi10 Я хотел бы переместить время запуска времени мониторинга окружающей среды с 12:04:07 до 0: 0: 0, чтобы совпасть с временем температуры кожи. (или наоборот). – HCAI
Просьба пояснить, что вы имеете в виду с вашим утверждением: «Временная метка на« P1 »неверна». Благодарю. – lrnzcig