[R] extract columns of a matrix/data frame
Chuck Cleland
ccleland at optonline.net
Tue Jul 31 19:53:08 CEST 2007
yuvika wrote:
> Hello all,
>
> I have a matrix whose column names look like
>
> a1 a2 b1 b2 b3 c1 c2
> 1 2 3 7 1 3 2
> 4 6 7 8 1 4 3
>
> Now, I can have any number of a's. not just two as shown above and same goes for b's and c's. I need to extract all the a's columns and put them in another matrix, extract all b's columns and put them in some matrix and same goes for "c". How can I identify such pattern and get subsets of this matrix depending on columns names?
>
> I will appreciate a quick reply.
> Thanks a lot.
mymat <- matrix(runif(60), ncol=6)
colnames(mymat) <- c("a1","a2","b1","b2","c1","c2")
mymat
a1 a2 b1 b2 c1 c2
[1,] 0.73623481 0.25204019 0.332436396 0.36629507 0.39517285 0.62491949
[2,] 0.48867382 0.20933245 0.511805497 0.03142542 0.82168732 0.20550784
[3,] 0.89198874 0.24477456 0.629644977 0.23442137 0.17828551 0.29640615
[4,] 0.99222414 0.49044514 0.571213786 0.91068115 0.09484414 0.78108139
[5,] 0.66615787 0.13183354 0.004350679 0.32443025 0.38742483 0.76044740
[6,] 0.06642704 0.96257552 0.189716240 0.83969989 0.53470898 0.28319039
[7,] 0.31172264 0.20201281 0.577353264 0.62082694 0.31649255 0.40977000
[8,] 0.52890283 0.46576510 0.107363256 0.72534897 0.12038182 0.06295499
[9,] 0.55292555 0.76459699 0.212533012 0.73275529 0.98008863 0.85302931
[10,] 0.84320369 0.09958472 0.158443155 0.92321443 0.50935938 0.08514859
mymat[,grep("^a", colnames(mymat))]
a1 a2
[1,] 0.73623481 0.25204019
[2,] 0.48867382 0.20933245
[3,] 0.89198874 0.24477456
[4,] 0.99222414 0.49044514
[5,] 0.66615787 0.13183354
[6,] 0.06642704 0.96257552
[7,] 0.31172264 0.20201281
[8,] 0.52890283 0.46576510
[9,] 0.55292555 0.76459699
[10,] 0.84320369 0.09958472
?grep
> ---------------------------------
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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.
--
Chuck Cleland, Ph.D.
NDRI, Inc.
71 West 23rd Street, 8th floor
New York, NY 10010
tel: (212) 845-4495 (Tu, Th)
tel: (732) 512-0171 (M, W, F)
fax: (917) 438-0894
More information about the R-help
mailing list