KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a 2D matrix mat with 500 rows × 335 columns, and a data.frame dat with 120425 rows. The data.frame dat has two columns I and J , which are integers to index the row, column from mat . I would like to add the values from mat to the rows of dat . Here is my conceptual fail: > dat$matval <- mat[dat$I, dat$J] Error: cannot allocate vector of length 1617278737 (I am using R 2.13.1 on Win32). Digging a bit deeper, I see that I'm misusing matrix indexing, as it appears that I'm only getting a sub-matrix of mat , and not a single-dimension array of values as I expected, i.e.: > 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 ... I was expecting something like int [1:100] 20 1 1 1 20 1 1 1 1 1 ... . What is the correct way to index a 2D matrix using indices of row, column to get the values?
Tags (comma-separated)
Save Edits
Cancel