考虑

ext <- data.frame(cond = rep(c('a', 'b'), each = 2), dat = runif(4) )

我想
exw <- unstack(ext, dat ~ cond)

但我想用 dcast() 中的 reshape2 来做(出于教学目的)。这可能吗?

最佳答案

你必须告诉 dcast 有一个识别行 id:

例如:

dcast(ext, 1:2~cond)
  1:2         a         b
1   1 0.5706567 0.4360110
2   2 0.0305229 0.7032459

而且,更普遍的是:
ext$id <- sequence(rle(as.character(ext$cond))$lengths)
dcast(ext, id~cond, value.var="dat")

  id         a         b
1  1 0.5706567 0.4360110
2  2 0.0305229 0.7032459

关于reshape2:dcast 高到宽而不聚合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13457466/

10-12 17:24