重塑具有非唯一ID和不同时间帧的数据

时间:2015-05-26 17:05:53

标签: r reshape reshape2 melt

我有一个格式如下的数据集:

name1 year name2 profits2010 profits2009 count 
AA    2009  AA    10           15          20
AA    2010  AA    10           15          3
BB    2009  BB     4           NA          34
BB    2010  BB     4           NA          4

我需要将数据重新整理为这种格式。关于如何做到这一点的任何想法?

name1 year name2 profits count
AA    2009 AA     15       20
AA    2010 AA     10       3
BB    2009 BB     NA       34
BB    2010 BB     4      4

2 个答案:

答案 0 :(得分:0)

这并非真正重塑,只是定义一个新变量。试试这个:

{{1}}

答案 1 :(得分:0)

尝试

 indx <- grep('profits', names(df1))
 indx2 <- cbind(1:nrow(df1), match(df1$year, 
               as.numeric(sub('\\D+', '',   names(df1)[indx]))))
 df1$profits <- df1[indx][indx2]
 df1[-indx]
 #   name1 year name2 count profits
 #1    AA 2009    AA    20      15
 #2    AA 2010    AA     3      10
 #3    BB 2009    BB    34      NA
 #4    BB 2010    BB     4       4