【发布时间】:2015-04-01 16:42:00
【问题描述】:
我试图在 for 循环中填充 25000 x 25000 矩阵,但 R 锁定了我。数据有许多零条目,那么稀疏矩阵是否合适?
这是一些示例数据和代码。
x<-c(1,3,0,4,1,0,4,1,1,4)
y<-x
z<-matrix(NA,nrow=10,ncol=10)
for(i in 1:10){
if(x[i]==0){
z[i,]=0
} else{
for(j in 1:10){
if(x[i]==y[j]){
z[i,j]=1
} else{z[i,j]=0
}
}
}
}
另一个问题。是否可以对这么大的矩阵进行计算。当我对这种大小的一些样本矩阵执行一些计算时,我得到一个 NA 的输出,带有整数溢出或 R 完全锁定的警告。
【问题讨论】:
-
也许,提供更多关于您想要实现的目标的信息会更有帮助;即这个特定问题可以通过
outer(x, x, "==") * (x != 0)解决。尽管如此,“Matrix”包在这里应该很有帮助。
标签: r for-loop matrix sparse-matrix