将时间序列重塑为R中的面板

谢尼

现在,我有3个国家的时间序列GDP数据。我想为数据集创建一个面板,以进行进一步的面板分析。我不知道如何通过重塑包装来创建它。

           AT      CZ       DE
 1995    68410.7 30457.3 630631.5
 1995.25 68353.5 30213.1 625515.3
 1995.5  68103.3 29766.4 623124.0
 1995.75 67896.0 29661.8 621122.0
 1996    67888.8 29595.8 616673.1
 1996.25 67874.5 29880.0 616645.4

我发现我可以通过以下方式重塑数据:

long <- reshape(as.data.frame(GDP.series),varying = list(names(GDP.series)), v.names="GDP",
            timevar = "Country", idvar = "time", ids = row.names(GDP.series),
            times = names(GDP.series),   new.row.names = 1:((dim(GDP.series)[2])*(dim(GDP.series)[1])),direction = "long")

然后输入数据如下:

    Country     GDP
 1      AT 49149.0
 2      AT 49555.5
 3      AT 49475.9
 4      AT 49507.6
 5      AT 49888.9
 6      AT 50324.5

但是这种转换的问题是丢失了有关时间段的信息。我是一个初学者,并不是所有代码背后的内容对我来说都是不稳定的,尤其是这一部分:

  "new.row.names = 1:((dim(GDP.series)[2])*(dim(GDP.series)[1])),direction = "long""

所以知道我的问题是在数据具有以下格式的情况下如何改进/更改代码

       Country     GDP
2013       AT 49149.0
2012.75    AT 49555.5
2012.5     AT 49475.9
2012.25    AT 49507.6
2011       AT 49888.9
2011.75    AT 50324.5

或者,如果我需要使用其他功能?先感谢您。(代码摘自该主题:用于面板回归的R中的数据转换

用户名

这会回答你的!但是请记住,数据框的行名必须唯一,因此您不能拥有该行名。检查我的输出:

data = data.frame(AT = 1:6,CZ = 11:16,DE = 21:26)
rownames(data) = c(2013,2012.75, 2012.5  ,2012.25  ,2011,2011.75)
data$row = rownames(data)

library(reshape2)
data1 = melt(data, id.vars = "row", measure.vars = c("AT","CZ","DE"),
     value.name = "GDP", variable.name = "Country")
data1
       row Country GDP
1     2013      AT   1
2  2012.75      AT   2
3   2012.5      AT   3
4  2012.25      AT   4
5     2011      AT   5
6  2011.75      AT   6
7     2013      CZ  11
8  2012.75      CZ  12
9   2012.5      CZ  13
10 2012.25      CZ  14
11    2011      CZ  15
12 2011.75      CZ  16
13    2013      DE  21
14 2012.75      DE  22
15  2012.5      DE  23
16 2012.25      DE  24
17    2011      DE  25
18 2011.75      DE  26

如果您要查找的是一个国家/地区的数据帧列表,请使用dlply():

library(plyr)
dlply(data1, .(Country), function(x) {rownames(x) = x$row;x$row = NULL;x})

$AT
        Country GDP
2013         AT   1
2012.75      AT   2
2012.5       AT   3
2012.25      AT   4
2011         AT   5
2011.75      AT   6

$CZ
        Country GDP
2013         CZ  11
2012.75      CZ  12
2012.5       CZ  13
2012.25      CZ  14
2011         CZ  15
2011.75      CZ  16

$DE
        Country GDP
2013         DE  21
2012.75      DE  22
2012.5       DE  23
2012.25      DE  24
2011         DE  25
2011.75      DE  26

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R中的时间序列-重塑?

来自分类Dev

重塑R中的时间序列

来自分类Dev

R中的时间序列-重塑?

来自分类Dev

将长格式面板数据重塑为广泛的堆叠时间序列

来自分类Dev

将数据重塑为面板形式

来自分类Dev

将df重塑为数据面板模型

来自分类Dev

将数据重塑为面板形式

来自分类Dev

重塑时间序列中的线组织数据

来自分类Dev

将长面板数据重塑为宽,其中数据在 ID 中不唯一

来自分类Dev

时间序列估计为R中的负值

来自分类Dev

将数据帧重塑为R中的列联表

来自分类Dev

将数据帧重塑为R中的列联表

来自分类Dev

将R中的数据帧重塑为宽格式

来自分类Dev

R面板时间序列均值图

来自分类Dev

将具有时代时间戳记的数据帧转换为R中以毫秒为单位的时间序列

来自分类Dev

R中的时间序列-将数据与不同的时间戳对齐

来自分类Dev

R中的时间序列-将数据与不同的时间戳对齐

来自分类Dev

将字符解析为R中的时间

来自分类Dev

重塑每日时间序列数据

来自分类Dev

将时间序列中的点与R中的NA字段连接

来自分类Dev

使用R将列中的分类数据重塑为行中的二进制数据

来自分类Dev

将数据读入R中的时间序列对象

来自分类Dev

将函数应用于R中的时间序列的多行

来自分类Dev

将数据转换为R中的时间序列

来自分类Dev

将数据帧转换为 R 中的时间序列

来自分类Dev

将时间序列乘以 R 中的一个因子

来自分类Dev

R:将数据重塑为更长的格式,其中多个列共享名称中的模式

来自分类Dev

使用R(dplyr)中的多个变量将宽数据重塑为长数据

来自分类Dev

使用列名称中的时间值重塑R中的数据