这是我与R中多维数组斗争的又一步,前一个问题是here:)
我有一个大R阵列,其中包含以下尺寸:
> data = array(..., dim = c(x, y, N, value))
我想执行一种比较平均值的引导程序(参见here进行讨论),获得:
> vmean = apply(data, c(1,2,3), mean)
使用随机替换的N
值随机取样,以便更好地解释data[1,1,,1]
是否等于[v1 v2 v3 ... vN]我想用类似的东西替换它[v_k1 v_k2 v_k3 ... v_kN],其中k值采用sample(N, N, replace = T)
采样。
当然我想要避免for
循环。我已阅读this但我不知道如何对此数组执行有效的索引,从而避免通过x
和y
进行循环。
有什么想法吗?
更新:这里重要的是我希望第四个(值)维度中的每个样本都有不同的样本,否则执行以下操作会很简单:
> dataSample = data[,,sample(N, N, replace = T), ]
答案 0 :(得分:0)
还有编译器软件包通过使用Just In Time编译器来加速循环。 在代码顶部添加thes行可以为所有代码启用编译器。
require("compiler")
compilePKGS(enable=T)
enableJIT(3)
setCompilerOptions(suppressAll=T)