Arrays 基于R的多维数组智能快速索引
这是我在R中使用多维数组的另一个步骤,前面的问题是:) 我有一个大的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]的东西
> 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
在引擎盖下使用了什么,但您需要将估算定义为一个采用索引向量的函数。