2016-01-06 58 views
0

我有一個非常大的R數據框存儲在長形式。它包含從40個不同的個體收集的體溫數據,間隔10秒,超過16天。個人已經接觸到條件(cond1和cond2)。它本質上是這樣的:時間序列數據可視化

ID Cond1 Cond2 Day ToD Temp 
1  A  B 1 18.0 37.1 
1  A  B 1 18.3 37.2 
1  A  B 2 18.6 37.5 
2  B  A 1 18.0 37.0 
2  B  A 1 18.3 36.9 
2  B  A 2 18.6 36.9 
3  A  A 1 18.0 36.8 
3  A  A 1 18.3 36.7 
3  A  A 2 18.6 36.7 
... 

我要創造條件(AB,BA,AA,BB)的每個組合四個單獨的線圖,顯示隨着時間的推移平均溫度(1-16天)。

p.s. ToD代表一天的時間。不知道我是否需要提供它來創建情節。

到目前爲止,我已經嘗試做

ts <- ts(data=dataset$Temp, start=1, end=16, frequency=8640) 
plot(ts) 

這將返回溫度的曲線來定義數據集作爲時間序列,但我無法弄清楚如何定義分手的數據條件值。

編輯: 本質上我想要一個看起來像這樣的圖1,但每個組分別單獨一個,並使用平均溫度值。這種情節只適用於一種情況下的一個人,我想要一個能夠顯示同一情況下所有人的平均值。

回答

1

您可以使用summarisegroup_by按條件對數據進行分組,然後對其進行繪製。這是你在找什麼?

library(dplyr) 
## I created a dataframe df that looks like this: 
    ID Cond1 Cond2 Day ToD Temp 
1 1  A  B 1 18.0 37.1 
2 1  A  B 1 18.3 37.2 
3 1  A  B 2 18.6 37.5 
4 2  B  A 1 18.0 37.0 
5 2  B  A 1 18.3 36.9 
6 2  B  A 2 18.6 36.9 
7 3  A  A 1 18.0 36.8 
8 3  A  A 1 18.3 36.7 
9 3  A  A 2 18.6 36.7 
df$Cond <- paste0(df$Cond1, df$Cond2) 
d <- summarise(group_by(df, Cond, Day), t = mean(Temp)) 
ggplot(d, aes(Day, t, color = Cond)) + geom_line() 

導致: enter image description here

+0

感謝您的幫助!但這不是我正在尋找的。我不想每天的平均值,而是每組時間點(ToD)中所有個體的平均溫度。因此,要獲取Cond AA中所有ID的第1天的ToD值爲18.00,然後爲18.01,等等。 (請參閱原文中的我的編輯)。 – user5751554

+0

然後,您只需要將toD添加到'group_by'語句中,以便彙總(group_by(df,Cond,Date,ToD),t = mean(Temp))''。這將給出每個條件,日期和時間的所有數據點的平均溫度。然後你可以使用像'facet_grid(Cond〜。)'這樣的東西爲每個條件獲得一個單獨的圖。 – ytk