Arrays 基于R的多维数组智能快速索引

Arrays 基于R的多维数组智能快速索引,arrays,r,multidimensional-array,Arrays,R,Multidimensional Array,这是我在R中使用多维数组的另一个步骤,前面的问题是:) 我有一个大的R数组,其维数如下: > data = array(..., dim = c(x, y, N, value)) 我想执行一种引导,将获得的平均值(有关讨论请参阅)与以下各项进行比较: > vmean = apply(data, c(1,2,3), mean) 用替换法随机抽取N值的平均值,为了更好地解释数据[1,1,1]是否等于[v1 v2 v3…vN],我想用类似[v_k1 v_k2 v_k3…v_kN]的东西

这是我在R中使用多维数组的另一个步骤,前面的问题是:)

我有一个大的R数组,其维数如下:

> data = array(..., dim = c(x, y, N, value))
我想执行一种引导,将获得的平均值(有关讨论请参阅)与以下各项进行比较:

> vmean = apply(data, c(1,2,3), mean)
用替换法随机抽取
N
值的平均值,为了更好地解释
数据[1,1,1]
是否等于[v1 v2 v3…vN],我想用类似[v_k1 v_k2 v_k3…v_kN]的东西替换,用
样本(N,N,replace=T)抽取的k值

当然,我想避免
for
循环。我已经读过了,但我不知道如何对该数组执行有效的索引,以避免循环通过
x
y

有什么想法吗

更新:这里重要的一点是,我希望第四维度(值)中的每个样本都有一个不同的样本,否则执行以下操作会很简单:

> dataSample = data[,,sample(N, N, replace = T), ]

还有一个编译器包,它通过使用即时编译器来加速循环。 在代码顶部添加这些行可以使编译器处理所有代码

require("compiler")
compilePKGS(enable=T)
enableJIT(3)
setCompilerOptions(suppressAll=T)

“for loops than*apply”是一个城市传奇。因此,您可能只想对(j in 1:{value of N})均值(data[,j,])
执行
,当然,您希望将任何类型的替换指令添加到循环中。事实上,我正在寻找一个向量化的解决方案,类似于OK,我会看看我能做些什么。或者看看
vectorize()
是否足够快。我不知道包
boot
在引擎盖下使用了什么,但您需要将估算定义为一个采用索引向量的函数。