2016-01-06 56 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