r - 计算R表中不同值的平均值
问题描述
我在 R 中有一个如下所示的表:
"Dimension","Config","Result"
"3","1","6.43547800901942e-12"
"3","1","3.10671396584125e-15"
"3","1","5.86997050075184e-07"
"3","2","1.57865350726808"
"3","2","0.125293574811717"
"3","2","0.096173751923243"
"4","1","3.33845065295529e-08"
"4","1","4.57511389653726e-07"
"4","1","2.58918409465438e-07"
"4","2","3.23375251723051"
"4","2","2.13142950121767"
"4","2","0.510008166587752"
可以看出,每个维度我总是有 6 个值,对于每个维度,我有 3 个配置 1 的值和 3 个配置 2 的值。是否可以“双重聚合”该表,以便输出每个维度的配置 1 以及每个维度的配置 2 的平均值?
如果我使用这个命令行:
a <- aggregate(d[,3], list(d$Dimension), mean)
我得到这个结果:
Group.1 x
1 3 3.000202e-01
2 4 9.791985e-01
但我想要这样的东西:
Group.1 Config x
1 3 1 <mean value for this row>
2 3 2 <mean value for this row>
3 4 1 <mean value for this row>
4 4 2 <mean value for this row>
解决方案
您可以使用公式界面。
d <- read.table(text="Dimension,Config,Result
3,1,6.43547800901942e-12
3,1,3.10671396584125e-15
3,1,5.86997050075184e-07
3,2,1.57865350726808
3,2,0.125293574811717
3,2,0.096173751923243
4,1,3.33845065295529e-08
4,1,4.57511389653726e-07
4,1,2.58918409465438e-07
4,2,3.23375251723051
4,2,2.13142950121767
4,2,0.510008166587752", header=T, sep=',')
aggregate(Result ~ Dimension+Config, data=d, mean)
Dimension Config Result
1 3 1 1.956678e-07
2 4 1 2.499381e-07
3 3 2 6.000403e-01
4 4 2 1.958397e+00
推荐阅读
- javascript - Discord bot 不响应命令 javascript
- c# - 如何访问列表的第一个元素?
- linux - linux目录下的文件和目录数量,只有2级
- android - 丢失密钥库密码,但让 Google 管理签名密钥
- javascript - 当页面以角度重新加载时在页面中做一些工作
- swift - 根据 Apple 文档计算文本高度
- c++ - Is there any way to use both Borland Compiler and graphics.h in CodeBlocks?
- azure-data-lake - 限制从 ADLS Gen2 到其他平台的数据移动
- arrays - 是否可以仅使用这三个过程 Max(A, i, j)、Min(A, i, j) 和 Swap(A, i, j) 来设计 O(n log n) 排序算法?
- arduino-esp8266 - HTTP Espressif arduino 客户端无法连接