有没有办法计算 R 中多个数据帧中每个单元格的标准偏差?
我目前有一个包含相似维度的多个数据框的列表。
- 数据框中的每个单元格对应于一个唯一样本的读数
- 每个数据帧都是相同数据的复制读取
a <- data.frame(matrix(sample(20,10), ncol = 5, nrow = 5))
b <- data.frame(matrix(sample(20,10), ncol = 5, nrow = 5))
c <- data.frame(matrix(sample(20,10), ncol = 5, nrow = 5))
> a
X1 X2 X3 X4 X5
1 15 2 15 2 15
2 19 6 19 6 19
3 14 11 14 11 14
4 3 5 3 5 3
5 10 4 10 4 10
> b
X1 X2 X3 X4 X5
1 14 10 14 10 14
2 5 7 5 7 5
3 9 15 9 15 9
4 3 18 3 18 3
5 8 17 8 17 8
> c
X1 X2 X3 X4 X5
1 4 5 4 5 4
2 14 12 14 12 14
3 17 10 17 10 17
4 11 16 11 16 11
5 7 9 7 9 7
sampledData <- list(a, b, c)
理想情况下,代码将应用于创建的列表,最终目标是输出一个相似维度的数据帧,每个单元格包含来自列表中所有数据帧相同位置的所有单元格的数据的标准偏差。
回答
简化为数组,然后sd遍历每组数据中的每一行/列位置:
data.frame(apply(sapply(sampledData, as.matrix, simplify="array"), c(1,2), sd))