簡體   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