see below.
On Mon, Nov 29, 2010 at 5:56 PM, pankaj borah
<pankajborah2k3 at yahoo.co.in> wrote:> Hi,
>
> I have matrix of 104 columns and 30000 rows (Each Row has rowname).
>
> I have 13 different? list of selected rownames (character) say 1000 each.
Now I want to extract the all the columns according to the rownames in each the
list.
>
if those are lists, make them vectors by calling unlist().
then:
> How can I do that in R ?
>
> 1 ) For a single list
Look at this example:
> mat <- matrix(1:100, 10, 10)
> head(mat)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 11 21 31 41 51 61 71 81 91
[2,] 2 12 22 32 42 52 62 72 82 92
[3,] 3 13 23 33 43 53 63 73 83 93
[4,] 4 14 24 34 44 54 64 74 84 94
[5,] 5 15 25 35 45 55 65 75 85 95
[6,] 6 16 26 36 46 56 66 76 86 96> rownames(mat)
NULL> rownames(mat) <- 1:10
> rownames(mat)
[1] "1" "2" "3" "4" "5"
"6" "7" "8" "9"
"10"> mat
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
1 1 11 21 31 41 51 61 71 81 91
2 2 12 22 32 42 52 62 72 82 92
3 3 13 23 33 43 53 63 73 83 93
4 4 14 24 34 44 54 64 74 84 94
5 5 15 25 35 45 55 65 75 85 95
6 6 16 26 36 46 56 66 76 86 96
7 7 17 27 37 47 57 67 77 87 97
8 8 18 28 38 48 58 68 78 88 98
9 9 19 29 39 49 59 69 79 89 99
10 10 20 30 40 50 60 70 80 90 100> mat[rownames(mat)==7, ]
[1] 7 17 27 37 47 57 67 77 87 97> mat[rownames(mat)%in%c(7, 5,3), ]
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
3 3 13 23 33 43 53 63 73 83 93
5 5 15 25 35 45 55 65 75 85 95
7 7 17 27 37 47 57 67 77 87 97>
> 2) For all the 13 list at a time
use a for loop.
Kjetil
>
> Regards,
>
> Pankaj Barah
> Department of Biology,
> ?Norwegian University of Science & Technology (NTNU)
>
>
>
> ? ? ? ?[[alternative HTML version deleted]]
>
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
>