如何在重塑中使用“cast”而不进行聚合

时间:2013-05-11 22:12:36

标签: r reshape reshape2

在我看过的许多使用中,使用了诸如mean之类的聚合函数。

如果你只是想重塑而不丢失信息怎么样? 例如,如果我想采用这种长格式:

ID     condition    Value
John   a            2
John   a            3
John   b            4
John   b            5
John   a            6
John   a            2
John   b            1
John   b            4

对于这种宽格式而没有任何聚合:

ID    a  b
John  2  4
John  3  5
Alex  6  1
Alex  2  4

我认为这是假设观察结果已成对并且您缺少价值会使这一点变得混乱,但任何见解都会受到赞赏

1 个答案:

答案 0 :(得分:6)

在这种情况下,您可以添加序列号:

library(reshape2)

DF$seq <- with(DF, ave(Value, ID, condition, FUN = seq_along))
dcast(ID + seq ~ condition, data = DF, value.var = "Value")

最后一行给出:

    ID seq a b
1 John   1 2 4
2 John   2 3 5
3 John   3 6 1
4 John   4 2 4

(请注意,我们使用了问题中的示例输入,但问题中的示例输出与示例输入不对应。)