【发布时间】:2016-01-05 21:12:33
【问题描述】:
我对 StackOverflow 和 R 统计数据都是新手,所以请多多包涵。 我在 SAS 编码方面有很多经验,但我正在努力学习 R。 我通常使用 SAS 和 R 来转换大型数据集,我有一个按研究站点矩阵划分的物种如下:
物种状态角色 Site1 Site2 Site3...Site25 A_a S P 0 0 0 1 A_b SO X 1 25 0 0 B_a S P 0 2 1 1 B_b S X 0 1 0 0 ...我想转换此表并根据站点变量名称和每个站点内的计数数据创建 2 个名为“站点”和“计数”的新变量:
物种状态角色站点计数 A_a S P 站点 1 0 A_a S P 站点 2 0 A_a S P Site3 0 A_a S P Site25 1 A_b SO X Site1 1 A_b SO X Site2 25 A_b SO X Site3 0 A_b SO X Site25 0 ... B_b S X Site25 0我认为这可能超出了简单的 t() 函数,并且已经研究了 reshape 和 reshape2 包,但是对于如何进行有点迷茫。会有人遇到这样的情况并且可以帮助编码吗? 谢谢,吉姆
【问题讨论】:
-
使用
reshape2::melt。 -
你试过
melt(data, c("Species", "Status", "Role"), value.name="Count")吗? -
如果您能提供一个最小的可重现示例来解决您的问题,那就太好了。我们可以从中工作并使用它来向您展示如何回答您的问题。这样,将来其他人也可以适合您的问题以及随附的答案。您可以查看this SO post,了解如何在 R 中制作一个出色的可重现示例。
-
另外,由于您来自 SAS,您可能会发现来自 UCLA 的 this Migrating to R for SAS/SPSS/Stata Users PDF 很有帮助。干杯!