这实质上是一个数据重塑问题。我有一张表格,显示不同大小的动物的数量,看起来像这样:
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;例如) 。