大向量R的差分矩阵

大向量R的差分矩阵,r,matrix,R,Matrix,我有一个大向量(长度:250k),我想计算每个元素与其他元素的差值 我用小号的一种方法是: n = 1000 set.seed(35) values = sample(1:1e3, n, replace=T) mat_temp = matrix(values, n, n, byrow=TRUE) - matrix(values, n, n, byrow=FALSE) mat_temp = abs(mat_temp) 这并不理想,因为我只需要对角线的下半部分(或绝对差) 主要问题是:如何有效地为

我有一个大向量(长度:250k),我想计算每个元素与其他元素的差值

我用小号的一种方法是:

n = 1000
set.seed(35)
values = sample(1:1e3, n, replace=T)
mat_temp = matrix(values, n, n, byrow=TRUE) - matrix(values, n, n, byrow=FALSE)
mat_temp = abs(mat_temp)
这并不理想,因为我只需要对角线的下半部分(或绝对差)

主要问题是:如何有效地为整个250k*250k(
n=250000
)矩阵运行它?使用16GB内存,这可能吗?已尝试
bigmemory
,但无法初始化大矩阵


有没有办法(我只需要差异)?

你知道250k^2是625亿元素,对吧。即使您只需要较低的部分,这也是您拥有的字节数的两倍是的,还有其他方法吗?我知道250^2矩阵不会出现。对于哪种算法,你需要所有这些元素同时存在于内存中(相对于根据需要动态计算它们的能力)?从算法的角度来扩展我最后的评论,在
m[I,j]
abs(值[I]-values[j]之间几乎没有什么区别)
。我认为,试图预先计算所有这些差异,而不是根据需要计算它们,并没有什么好处。