时间序列数据可视化

时间:2016-01-06 10:08:53

标签: r time-series data-visualization

我在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)

这会返回Temp的图,但我无法弄清楚如何定义条件值来分解数据。

编辑: 基本上我想要一个看起来像这个1的图,但是每个组分别使用一个,并使用平均Temp值。这个图只适用于一个条件下的一个人,我想要一个显示同一条件下所有个体的平均值。

1 个答案:

答案 0 :(得分: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