我有一个如下数据框,我想创建一个矩阵,其中根据 3 个招聘站点(站点)和 5 个招聘年份(year)显示平均 sleep 持续时间(SLP)。
SLP site year
8.6 1 2008
7.2 1 2005
6.4 2 2006
9.5 3 2007
6.1 2 2009
3.6 1 2005
8.6 1 2008
7.2 1 2005
6.4 2 2006
9.5 3 2007
6.1 2 2009
5.1 3 2008
2.1 2 2006
我想要的输出是:
1 2 3
2005 6.00 - -
2006 - 4.97 -
2007 - - 9.5
2008 8.60 - 5.1
2009 - 6.10 -
列名是站点变量,行名是年份变量,每个单元格中的值是 SLP 的平均值。我该怎么做?
最佳答案
我们可以使用acast
library(reshape2)
acast(df1, year~site, value.var="SLP", mean)
或者使用 base R
tapply
with(df1, tapply(SLP, list(year, site), FUN = mean))
关于r - 如何从数据框中创建矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41266610/