首页 > 解决方案 > 在R中乘以2个非常大的数据帧

问题描述

我在 R 中有 2 个数据框,如下所示

数据框 1

structure(list(X1 = c(1, 4, 3), X2 = c(2, 1, 2), X3 = c(3, 1, 
1)), class = "data.frame", row.names = c(NA, -3L))

数据框 2

structure(list(X1 = c(0.5, 0.1), X2 = c(0.7, 0.2), X3 = c(0.3, 
0.2)), class = "data.frame", row.names = c(NA, -2L))

我想将 DF1 的每一行与 DF2 的每一行相乘,并执行如下计算。这是一种矩阵乘法以及额外的计算

  1. 矩阵乘法后,我将计算1/(1+exp(-x))结果矩阵中的每个单元格
  2. 最后,取矩阵的列和

上面的数据集只是一个虚拟集。实际上,DF1 有 110 万行,而 DF2 有 65000 行。在进行矩阵乘法时,出现错误

cannot allocate vector of Size 560 GB

有没有其他选择。另外,由于数据框很大,我正在寻找时间有效的解决方案。可能是数据表?

谢谢,

标签: rdataframedatatable

解决方案


推荐阅读