一个类似于转置的融合调用

问题描述 投票:1回答:1

我想知道我的两步解决方案是否可以简化为一个melt()调用,或者更简单地使用data.table完成。

我的数据:

DT <- data.table(category = c("x", "y"), `2010` = c(10, 20), `2011` = c(40, 43))
DT # Has much more columns in reality
   category 2010 2011
1:        x   10   40
2:        y   20   43

预期产量:

   year  x  y
1: 2010 10 20
2: 2011 40 43

当前解决方案

library(magrittr)
melt(DT, id.vars = "category", variable.name = "year") %>% 
  dcast(year ~ category)
r data.table melt
1个回答
1
投票

它可以用recastmelt/dcast的包装)完成

library(reshape2)
recast(DT, variable ~ category, id.var = 'category')
© www.soinside.com 2019 - 2024. All rights reserved.