0

我需要通过以下方式更改我的一些数据集。

我有一个面板数据集,其中包含作为标识符 (id) 的唯一公司 ID、观察年份(2002-2012 年)和一些具有相应年份值的公司变量(规模、营业额等)。它看起来有点像:

[ID] [year] [size] [turnover] ...
1    2002    14     1200
1    2003    15     1250
1    2004    17     1100
1    2005    18     1350
2    2004    10     5750
2    2005    11     6025
...

我现在需要通过以下方式对其进行转换。

  • 我为每个感兴趣的特征创建了一个自己的矩阵,其中每个公司(根据其 id)只有一行,并且每年在单独的列中对应的值。

  • 应该提到的是,并非每个公司每年都在数据集中,因为它们可能成立较晚,已经关闭等,如示例所示。最后它应该看起来像下面这样(大小变量的例子):

[ID] [2002] [2003] [2004] [2005]
1    14     15     17     18
2    -      -      10     11

到目前为止,我使用该%in%命令进行了尝试,但没有设法获得正确列中的值。

4

1 回答 1

1
DF <- read.table(text="[ID] [year] [size] [turnover]
1    2002    14     1200
1    2003    15     1250
1    2004    17     1100
1    2005    18     1350
2    2004    10     5750
2    2005    11     6025",header=TRUE)

library(reshape2)
dcast(DF, X.ID.~X.year.,value.var="X.size.")
#   X.ID. 2002 2003 2004 2005
# 1     1   14   15   17   18
# 2     2   NA   NA   10   11
于 2013-04-22T14:33:19.177 回答