2014-06-05 48 views
0

我裝一個像這樣的大歐盟統計局數據集:多行CAST函數和時間列

install.packages("SmarterPoland") 
library(SmarterPoland) 
GDP_raw <- getEurostatRCV(kod = "namq_gdp_c") 

它具有這樣的結構:

s_adj unit  indic_na geo  time  value 
1 NSA  EUR_HAB  B11   AT  2014Q1  NA 
2 NSA  EUR_HAB  B11   BE  2014Q1  200.0 
3 NSA  EUR_HAB  B11   BG  2014Q1  -100.0 

我想用「時間」爲第一列和其他變量作爲行。做它周圍的其他方法很容易用:

GDP_sorted <- cast(GDP_raw, geo + unit + s_adj + indic_na ~ time) 

返回:

geo unit  s_adj indic_na 1955Q1 1955Q2 1955Q3 1955Q4 
1 AT EUR_HAB NSA  B11  NA  NA  NA  NA 
2 AT EUR_HAB NSA  B111  NA  NA  NA  NA 
3 AT EUR_HAB NSA  B112  NA  NA  NA  NA 

的問題是,這裏的列是變量,所以每一個季度是它自己的變量,它沒有任何意義從時間系列的角度來看。我需要某種轉置(簡單t()不會返回相同的數據類型)。但是,如果我嘗試投周圍的其他方式,它增加不同類別連成一個變量,並創建:

 time  AT_EUR_HAB_NSA_B11 AT_EUR_HAB_NSA_B111  AT_EUR_HAB_NSA_B112 
1  1955Q1 NA     NA      NA 
2  1955Q2 NA     NA      NA 
3  1955Q3 NA     NA      NA 

這意味着我有12405個變量。這使得子集不可行。我想沿線的東西:

 time 
s_adj   NSA     NSA      NSA 
geo    AT     AT      AT 
unit    EUR_HAB    EUR_HAB     EUR_HAB 
indic_na   B11     B12      B13 
1  1955Q1 NA     NA      NA 
2  1955Q2 NA     NA      NA 
3  1955Q3 NA     NA      NA 

等等(這是一個虛構的例子)。那麼我可以使用:

Demand <- subset(GDP_sorted, (indic_na == "P3_P5") & (s_adj == "SWDA") & (unit == "MIO_EUR")) 

而不必指定12405變量的變量的所有組合。

回答

0

直到有人提供了一個更好的答案,這裏是我現在使用一種解決方法:從原始下載表格

開始:

GDP_raw <- read.table("/media/38A05C6AA05C311C/1_Documents/Dropbox/Masterarbeit/2_R/Data/GDP_raw.RData") 

子集,然後你感興趣的變量:

Demand <- subset(GDP_raw, (indic_na == "P3_P5") & (s_adj == "SWDA") & (unit == "MIO_EUR")) 

然後剩下的唯一維度是時間和地理區域,您可以簡單地將其轉換爲:

Demand_cast <- cast(Demand, time ~ geo) 

它給你一個文件,你的形式變量的矩陣:

time AT BE BG 
1955Q1 NA NA NA 
1955Q2 NA NA NA 
1955Q3 NA NA NA