如何从R中的数据帧中提取纵向时间序列数据,用于时间序列分析和插补

时间:2011-07-10 12:13:55

标签: r statistics time-series

感谢joran帮助我在我的previous question中对数据进行分组,我想在R中创建一个较小的数据框,以便我可以对数据进行时间序列分析。

现在我想实际进一步从数据框中提取数据。数据框由6列组成。第1列至第5列各自具有不同的名称/值,例如区,性别,年,月和年龄组。第六列是该特定组合的死亡计数。提取物看起来像这样:

             District  Gender Year Month    AgeGroup TotalDeaths
             Northern    Male 2006    11        01-4           0
             Northern    Male 2006    11       05-14           1
             Northern    Male 2006    11         15+          83
             Northern    Male 2006    12           0           3
             Northern    Male 2006    12        01-4           0
             Northern    Male 2006    12       05-14           0
             Northern    Male 2006    12         15+         106
             Southern  Female 2003     1           0           6
             Southern  Female 2003     1        01-4           0
             Southern  Female 2003     1       05-14           3
             Southern  Female 2003     1         15+         136
             Southern  Female 2003     2           0           6
             Southern  Female 2003     2        01-4           0
             Southern  Female 2003     2       05-14           1
             Southern  Female 2003     2         15+         111
             Southern  Female 2003     3           0           2
             Southern  Female 2003     3        01-4           0
             Southern  Female 2003     3       05-14           1
             Southern  Female 2003     3         15+         141
             Southern  Female 2003     4           0           4

我是时间序列的新手,我想我需要这样做来分析数据:我需要提取较小的'时间序列'数据对象,这些数据对象是唯一的纵向数据。例如,从上面的数据框中,我想为每个区,性别和年龄组提取这样的较小数据对象:

             District  Gender Year Month    AgeGroup TotalDeaths
             Northern    Male 2003     1        01-4           0
             Northern    Male 2003     2        01-4           1
             Northern    Male 2003     3        01-4           0
             Northern    Male 2003     4        01-4           3
             Northern    Male 2003     5        01-4           4
             Northern    Male 2003     6        01-4           6
             Northern    Male 2003     7        01-4           5
             Northern    Male 2003     8        01-4           0
             Northern    Male 2003     9        01-4           1
             Northern    Male 2003    10        01-4           2
             Northern    Male 2003    11        01-4           0
             Northern    Male 2003    12        01-4           1
             Northern    Male 2004     1        01-4           1
             Northern    Male 2004     2        01-4           0

转到

             Northern    Male 2006    11        01-4           0
             Northern    Male 2006    12        01-4           0

我在Excel中尝试过一些东西,用这些数据创建数据透视表,然后尝试提取信息字符串 - 但失败了。之后我在R中发现reshape,但我要么不知道代码,要么不应该使用reshape来执行此操作。

我甚至不确定这是否是分析这个横截面时间序列数据的正确/方法,即。如果使用read.ts()ts()arima()等功能分析此数据实际需要其他格式。

我最终的目标是使用这些数据和amelia2软件包及其功能来估算2007年和2008年某些月份遗失的TotalDeaths,其中数据当然缺失。

任何帮助,如何做到这一点以及如何解决这个问题的建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

关于如何最佳提取的狭隘问题:

subset(dfrm, subset=(District=="Northern" &  Gender=="Male" &  AgeGroup=="01-4"))

subset还有一个select参数来缩小列。我怀疑对你正在使用的术语“提取”的搜索只会提取“提取”页面的命中,这个页面出乎意料地没有链接到subset。 (我从早期版本的AgeGroup规范中修剪了一个尾随空格。)