Faster ways to calculate frequencies and cast from long to wide

前端 未结 4 918
灰色年华
灰色年华 2020-11-21 04:56

I am trying to obtain counts of each combination of levels of two variables, \"week\" and \"id\". I\'d like the result to have \"id\" as rows, and \"week\" as columns, and t

4条回答
  •  执念已碎
    2020-11-21 05:36

    You don't need ddply for this. The dcast from reshape2 is sufficient:

    dat <- data.frame(
        id = c(rep(1, 4), 2),
        week = c(1:3, 1, 3)
    )
    
    library(reshape2)
    dcast(dat, id~week, fun.aggregate=length)
    
      id 1 2 3
    1  1 2 1 1
    2  2 0 0 1
    

    Edit : For a base R solution (other than table - as posted by Joshua Uhlrich), try xtabs:

    xtabs(~id+week, data=dat)
    
       week
    id  1 2 3
      1 2 1 1
      2 0 0 1
    

提交回复
热议问题