【发布时间】:2015-03-05 19:34:30
【问题描述】:
最近我开始使用 R,我想用它来根据信息的变化将条件概率的大文件转换为距离矩阵(参见:https://en.wikipedia.org/wiki/Variation_of_information 和 https://en.wikipedia.org/wiki/Mutual_information)要做到这一点,我发现我需要读取一个相当大的平面文件(~35GB)的条件概率,其内容是:
1 7979 1
2 23243 0
23243 1 0.343
......
等等。我想要做的是读取数据并以这样的方式重塑我有一个表(或矩阵):
1 2 ... 7979 ... 23243 ...
1 z z z 1 z z ...
2 z z z z z 0 ...
... z z z z z z ...
7979 z z z z z z ...
... z z z z z z ...
23243 0.343 0 z z z z ...
z 是平面文件的第三列。需要考虑的事项:
1) 平面文件第三列的大部分值为0。
2) 生成的表格是正方形的,每行大约有 50,000 个条目。
3) 加载表格后,每行必须多次求和,所有元素一次求和,每次求和 (#rows-1)^2 次,每次额外求和时都省略一列。
任何想法都会很棒。到目前为止,我唯一的想法是在预处理步骤中从平面文件中删除第三列等于零的所有行(awk 这样做很好),然后尝试找到一个包来创建一个稀疏矩阵从平面文件中将其转换为 R 中动态的密集矩阵以进行计算,但我运气不佳(我知道 dummy.matrix 做了类似的事情,但我不知道如何使用它)。
【问题讨论】:
标签: r io probability sparse-matrix entropy