Значения индекса из матрицы с использованием строки, столбца

Это, вероятно, легко решить. У меня есть 2D-матрица mat с 500 строками × 335 столбцов и data.frame dat с 120425 строками. Data.frame dat имеет два столбца I и J , которые представляют собой целые числа для индексации строки, столбца из mat . Я хотел бы добавить значения из mat в строки dat .

Вот моя концептуальная ошибка:

> dat$matval <- mat[dat$I, dat$J]
Error: cannot allocate vector of length 1617278737

(я использую R 2.13.1 на Win32) . Копнув немного глубже, я вижу, что неправильно использую индексирование матриц, поскольку, похоже, я получаю только подматрицу 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-матрицу с использованием индексов строки, столбца для получения значений?

24
задан Reinstate Monica - G. Simpson 29 November 2012 в 08:54
поделиться