3

很抱歉发布这个,因为我知道这以前曾以各种形式出现过,但我真的不明白我做错了什么/R的内部工作!

我有一个(多维)数据数组,我从我正在使用的 netcdf 文件中读取这些数据。我想计算部分数组的一些“统计数据”,例如:

data <- array(runif(96*73*26*12), dim=c(96,73,26,12))

part.mean <- apply(data[10:23, 42:56, ,], c(3,4), mean)

效果很好。但:

part.sd <- apply(data[10:23, 42:56, ,], c(3,4), sd)

失败。

那么,对我的数组进行子集化并计算与我可以在上面计算的平均值相关的 sd 的正确方法是什么?

谢谢你的时间!

亚历克斯

4

1 回答 1

5

sd与矩阵的工作方式不同mean。它产生列标准偏差而不是整个矩阵,

part.sd <- apply(data[10:23, 42:56, ,], c(3,4), function(x) sd(as.vector(x)))

应该给你一个与平均值结果一致的结果。

于 2012-08-08T11:11:24.930 回答