在R中将大小频率表重构为长格式

时间:2017-02-20 15:20:37

标签: r reshape tidyr

这实质上是一个数据重塑问题。我有一张表格,显示不同大小的动物的数量,看起来像这样:

    have.this <- data.frame(Pond = c(1,1,1,2,2,2), 
                    Size = c(1,2,3,1,2,3), 
                    SpeciesA.count = c(2,6,1, 4,8,5),
                    SpeciesB.count = c(3,1,3,6,3,4))

然而,现在我不想拥有这些不同的大小类,而是希望为每个人提供一行/观察。这与标准的宽长整形不同,因为长格式的长度将完全取决于计数值。也就是说,池塘A的长度(观测次数)将是16(物种A的2个个体大小为1,物种A的个体大小为2,依此类推),而池塘B的观测数量为30。

    want.this <- data.frame(Pond = c(rep(1,16), rep(2, 30)), 
                    Species = c(rep("A", 9), rep("B", 17), rep("A", 7), rep("B", 13)),
                    Size = c(rep(1,2), rep(2,6), rep(3,1), rep(1,3), rep(2,1), rep(3,3), 
                             rep(1,4), rep(2,8), rep(3,5), rep(1,6), rep(2,3), rep(3,4)))

我熟悉&#39;聚集&#39;来自tidyr和其他重塑命令,但这似乎有点不同,因为新行的数量取决于特定的值(在&SpeciesA.count&#39;和#39; SpeciesB.count&#39;例如) 。

0 个答案:

没有答案