通过ID操作R中的数据帧

时间:2015-05-26 14:40:14

标签: r dataframe reshape

我有一个数据框:

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。

2 个答案:

答案 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