我需要以下列方式更改我的一些数据集。
我有一个面板数据集,其中包含唯一的公司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%
命令尝试了它,但没有设法在正确的列中获取值。
答案 0 :(得分: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