重新安排数据框

时间:2014-10-20 06:07:46

标签: r dataframe reshape

我有一个像

这样的数据框
 col1   col2   col3   col4
  a       0     t      .1
  b       0     t      .2
  a       1     f      .3
  b       1     f      .4

我需要重新安排这种格式

         a     b
0   t   .1    .2
1   f   .3    .4

我知道这可以使用dcast功能完成。但我无法弄清楚到底是怎么回事?

1 个答案:

答案 0 :(得分:2)

正如您所提到的,可以使用来自" reshape2"的dcast来完成此操作:

library(reshape2)
dcast(mydf, col2 + col3 ~ col1, value.var = "col4")
#   col2 col3   a   b
# 1    0    t 0.1 0.2
# 2    1    f 0.3 0.4

也可以使用基础R中的reshape来完成:

> reshape(mydf, direction = "wide", idvar = c("col2", "col3"), timevar = "col1")
  col2 col3 col4.a col4.b
1    0    t    0.1    0.2
3    1    f    0.3    0.4

使用spread来自" tidyr":

> library(dplyr)
> library(tidyr)
> mydf %>% spread(col1, col4)
  col2 col3   a   b
1    0    t 0.1 0.2
2    1    f 0.3 0.4