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变量的变量的所有组合。