我有一个数据框:
ID date term estimate
unit1 1/1/2015 intercept 1.01
unit1 1/1/2015 x1 2.01
unit1 1/1/2015 x2 3.01
unit1 1/1/2015 x3 4.01
unit1 1/1/2015 x4 5.01
unit2 1/1/2015 intercept 1.01
unit2 1/1/2015 x1 -1.01
unit2 1/1/2015 x2 1.01
unit2 1/1/2015 x3 2.01
unit1 1/2/2015 intercept 1.01
unit1 1/2/2015 x1 2.01
unit1 1/2/2015 x2 3.01
unit1 1/2/2015 x3 4.01
unit1 1/2/2015 x4 5.01
我想要获得的是每个术语在其自己的列中,按ID和日期,以及没有与之关联的特定术语的ID和日期组合的NA。因此,应该总共有7列 - ID,日期,截距和x1-x4。
答案 0 :(得分:2)
这是从长期到广泛问题的简单重塑
library(reshape2)
dcast(df, ID + date ~ term)
# ID date intercept x1 x2 x3 x4
# 1 unit1 1/1/2015 1.01 2.01 3.01 4.01 5.01
# 2 unit1 1/2/2015 1.01 2.01 3.01 4.01 5.01
# 3 unit2 1/1/2015 1.01 -1.01 1.01 2.01 NA
答案 1 :(得分:2)
或
library(tidyr)
spread(df1, term, estimate)
# ID date intercept x1 x2 x3 x4
#1 unit1 1/1/2015 1.01 2.01 3.01 4.01 5.01
#2 unit1 1/2/2015 1.01 2.01 3.01 4.01 5.01
#3 unit2 1/1/2015 1.01 -1.01 1.01 2.01 NA