这可能很容易解决。我有一个mat500行×335列的2D矩阵,以及一个dat120425行的data.frame。data.frame dat有两列I和J,它们是从索引到行的整数mat。我想将的值从添加mat到的行中dat。
这是我的概念上的失败:
> dat$matval <- mat[dat$I, dat$J]
Error: cannot allocate vector of length 1617278737
(我在Win32上使用R 2.13.1)。深入研究,我发现我在滥用矩阵索引,因为看来我只是得到的子矩阵mat,而不是我所期望的一维值数组,即:
> str(mat[dat$I[1:100], dat$J[1:100]])
int [1:100, 1:100] 20 1 1 1 20 1 1 1 1 1 ...
我期待着类似的东西int [1:100] 20 1 1 1 20 1 1 1 1 1 ...。使用行,列的索引获取值来索引2D矩阵的正确方法是什么?
呼如林
牛魔王的故事