6

在我见过的许多 cast 用法中,都使用了诸如 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

我想这是假设观察结果是成对的,而你缺少价值会搞砸这一切,但任何见解都值得赞赏

4

1 回答 1

9

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

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

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

于 2013-05-12T00:03:42.280 回答