我有一个mat
500 行 × 335 列的二维矩阵和一个 120425行的dat
data.frame。data.framedat
有两列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 ...
。使用行、列索引来索引二维矩阵以获取值的正确方法是什么?