I have a vector nodenames as
nodenames <- c("A","B","C","T","N","Z")
I have a square sparse matrix with dimnames as
Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
..@ i : int [1:4149962] 1 2 3 4 5 9 11 12 13 14 ...
..@ p : int [1:3417] 0 1702 2710 3935 5411 6719 8141 9822 9822 11515 ...
..@ Dim : int [1:2] 3416 3416
..@ Dimnames:List of 2
.. ..$ : chr [1:3416] "A" "B" "AAL" "T" ...
.. ..$ : chr [1:3416] "A" "B" "AAL" "T" ...
..@ x : num [1:4149962] 2 1 1 3 1 1 2 19 3 2 ...
..@ factors : list()
How can I produce a subset of this matrix with dimnames in nodenames?
I think Tim Riffe’s answer is the most direct. If the user were unsure whether the ‘nodenames’ vector were a subset of both the rownames() and the colnames() values, then this might be a bit safer:
For the amended question for objects of class-dgCMatrix I am getting sensible results using the same methods: