繁体   English   中英

如何从 R 中的 dataframe 中提取纵向时间序列数据以进行时间序列分析和插补

[英]How to extract longitudinal time-series data from a dataframe in R for time-series analysis and imputation

感谢joran在我之前的问题中帮助我对数据进行分组,我想在 R 中制作一个更小的数据框,以便我可以对数据进行时间序列分析。

现在我想进一步从 dataframe 中提取数据。 dataframe由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

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

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

我什至不确定这是否是分析此横截面时间序列数据的正确/方法,即。 如果实际上需要另一种格式来使用read.ts()ts()arima()等函数分析这些数据。

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

任何帮助,如何做到这一点,也许关于如何解决这个问题的建议将不胜感激。

对于如何最好地提取的狭隘问题:

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

subset还有一个 select 参数来缩小列。 我怀疑对您使用的“提取”一词的搜索只会拉出对?提取页面的点击,令人惊讶的是,该页面没有指向subset的链接。 (我从早期版本的 AgeGroup 规范中修剪了一个尾随空格。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM