r - 如何从数据框中创建矩阵?

标签 r matrix dataframe

我有一个如下数据框,我想创建一个矩阵,其中根据 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/

相关文章:

R 获取列的所有组合并对它们执行函数返回对称矩阵?

c++ - c++类与OpenCV矩阵运算之间的转换

R - 从 data.frames 列表中提取信息

r - 水平 ggplot - 如何在条内定位数据标签

R 警告 "IMKClient Stall detected"

r - 将向量列表转换为计数数据帧

r - 根据列中值的前缀对数据框进行排序

java - 为什么这种并行矩阵加法效率如此低下?

python-3.x - 打印 Pandas 数据框时如何抑制 "dtype"行?

r - 转置数据框时对象大小会大幅增加