Index valores de una matriz usando fila, col indica
Esto probablemente sea fácil de resolver. Tengo una matriz 2Dmat
con 500 filas × 335 columnas y un data.framedat
con 120425 filas. El data.framedat
tiene dos columnasI
yJ
, que son enteros para indexar la fila, columna demat
. Me gustaría agregar los valores demat
a las filas dedat
.
Aquí está mi falla conceptual:
> dat$matval <- mat[dat$I, dat$J]
Error: cannot allocate vector of length 1617278737
(Estoy usando R 2.13.1 en Win32). Excavando un poco más, veo que estoy haciendo un mal uso de la indexación matricial, ya que parece que solo obtengo una submatriz demat
, y no una matriz de valores unidimensional como esperaba, es decir
> 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 ...
Estaba esperando algo comoint [1:100] 20 1 1 1 20 1 1 1 1 1 ...
. ¿Cuál es la forma correcta de indexar una matriz 2D usando índices de fila, columna para obtener los valores?