使用非唯一 ID 和不同时间范围重塑数据

reshape data with non-unique id and varying time frames

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

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

我需要将数据重塑为 format.Any 关于如何做到这一点的想法?

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

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

df$profits <- ifelse(df$year==2009,df$profits2009,df$profits2010)

尝试

 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