【发布时间】:2016-03-18 04:30:16
【问题描述】:
在下面的代码中,对于矩阵Ma,将标准正态随机向量x1相乘,得到列和和最大值。通过重复这个过程 S=1000 次,我有兴趣找到 f2 的上 95% 分位数。由于高维矩阵,它花了很多时间,当我尝试 lapply 进行一些修改时,我收到一条关于内存分配的错误消息。有没有办法让这个模拟更快?提前致谢。
set.seed(1)
S=1000; n=1000; D=10000
Ma=matrix(rnorm(n*D),ncol=D)
f2<-NULL
for (i in 1:S){
x1=rnorm(n,0,1)
f1=colSums(Ma*x1)
f2[i]=max(f1)
}
q=quantile(f2,0.95)
【问题讨论】:
-
这似乎很有可能是 XY 问题meta.stackexchange.com/questions/66377/what-is-the-xy-problem/…。您实际上并没有描述任务,而是在短时间内发布了两个单独但略有不同的问题,并要求“让它们更快”。
-
我看了看材料。这真的很有帮助。谢谢!
标签: r for-loop matrix apply lapply