如何将数据帧转换为时间序列

时间:2011-07-15 16:20:29

标签: r dataframe time-series

我有以下R数据帧:

> str(H.dark)
'data.frame':   86400 obs. of  18 variables:
 $ groupname: Factor w/ 8 levels "rowA","rowB",..: 8 8 8 8 8 8 8 8 8 8 ...
 $ location : Factor w/ 96 levels "c1","c10","c11",..: 84 85 86 87 88 90 91 92 93 94 ...
 $ starttime: int  7200 7200 7200 7200 7200 7200 7200 7200 7200 7200 ...
 $ dark     : int  1 1 1 1 1 1 1 1 1 1 ...
 $ inadist  : num  2.2 2.6 3.9 3.8 2.5 2.2 3 1.3 2.7 1.2 ...
 $ smldist  : num  11.5 22.6 9 18.6 19.1 18.9 11.7 28 13.9 9.8 ...
 $ lardist  : num  9.8 5.8 1.9 3.1 2.1 1.3 6 13.6 3.4 0.9 ...
 $ emptydur : num  1.5 0.4 0 0.2 0.3 0.7 0.4 0.4 0.1 2 ...
 $ inadur   : num  2.1 2 3.3 2 2.5 1.8 2.8 1.2 2.6 1.7 ...
 $ smldur   : num  1.2 2.4 1.6 2.7 2.1 2.5 1.6 2.8 2.1 1.2 ...
 $ lardur   : num  0.2 0.3 0.1 0.1 0.1 0.1 0.3 0.6 0.1 0.1 ...
 $ emptyct  : int  5 7 1 1 5 1 1 3 1 2 ...
 $ entct    : int  0 0 0 0 0 0 0 0 0 0 ...
 $ inact    : int  8 10 9 11 13 9 12 7 7 6 ...
 $ smlct    : int  10 16 11 14 16 12 16 15 9 7 ...
 $ larct    : int  2 3 1 1 1 1 3 5 1 1 ...

我希望使用ts()将其转换为时间序列,因为ts具有一些很好的滞后功能和其他时间特定的分析功能。 starttime列是时间。最小值为7200秒,最大值为43200.观察值每5秒钟发生一次。我已经阅读了ts文档,我想我可能首先必须将我的数据帧转换为矩阵。但我完全不清楚我需要如何重新排列数据,或者确实需要重新排列数据。

任何人都可以提供一些清晰度吗?

1 个答案:

答案 0 :(得分:2)

嗯,如果我理解正确的话,this thread应该会帮助你。至少我的问题似乎和我很相似。