Here is one way to do it. BTW 'a'-'z' won't work because there are 41 splits. Use a list instead:
> red <- matrix(seq(23688 * 164), nrow=23688, ncol=164) > # create indices > indx <- split(1:164, cut(1:164, 41)) > # now split matrix > newMatrix <- lapply(indx, function(x) red[, x]) > > str(newMatrix) List of 41 $ (0.837,4.82]: int [1:23688, 1:4] 1 2 3 4 5 6 7 8 9 10 ... $ (4.82,8.8] : int [1:23688, 1:4] 94753 94754 94755 94756 94757 94758 94759 94760 94761 94762 ... $ (8.8,12.8] : int [1:23688, 1:4] 189505 189506 189507 189508 189509 189510 189511 189512 189513 189514 ... $ (12.8,16.8] : int [1:23688, 1:4] 284257 284258 284259 284260 284261 284262 284263 284264 284265 284266 ... $ (16.8,20.8] : int [1:23688, 1:4] 379009 379010 379011 379012 379013 379014 379015 379016 379017 379018 ... $ (20.8,24.7] : int [1:23688, 1:4] 473761 473762 473763 473764 473765 473766 473767 473768 473769 473770 ... $ (24.7,28.7] : int [1:23688, 1:4] 568513 568514 568515 568516 568517 568518 568519 568520 568521 568522 ... $ (28.7,32.7] : int [1:23688, 1:4] 663265 663266 663267 663268 663269 663270 663271 663272 663273 663274 ... $ (32.7,36.7] : int [1:23688, 1:4] 758017 758018 758019 758020 758021 758022 758023 758024 758025 758026 ... $ (36.7,40.7] : int [1:23688, 1:4] 852769 852770 852771 852772 852773 852774 852775 852776 852777 852778 ... $ (40.7,44.7] : int [1:23688, 1:4] 947521 947522 947523 947524 947525 947526 947527 947528 947529 947530 ... On Thu, Oct 1, 2009 at 6:57 PM, Amit Kumar <amitkumartiw...@gmail.com> wrote: > Thanks! > It worked! There is another problem I want to subset the matrix 'red' > in following manner: >>dim(red) > 23688 164 >>a=red[1:23688,1:4] >>b=red[1:23688,5:8] >>c=red[1:23688,9:12] > .............................. > .............................. >>z=red[1:23688,161:164] > If there any efficient way to do it? > cheers! > Amit > >> >> On Thu, 1 Oct 2009, Amit Kumar wrote: >> >>> Hi! All, >>> I am working with a large matrix of dimension 23689 x 162. Some of the >>> values of this matrix is missing (NA). And it looks something like >>> that: >>> >>>> dim(red) >>> >>> 23689 162 >>> >>>> red >>> >>> [,1] [,2] [,3] [,4] [,5] >>> [1,] 2 NA 4 9 6 >>> [2,] 5 NA 6 NA 1 >>> [3,] NA 2 11 23 20 >>> [4,] 2 1 21 NA 3 >>> [5,] NA 7 NA 52 NA >>> >>> Here I want to convert NA to zero everywhere in the matrix. I do no >>> want to omit NA using na.omit(red). I want output something like that: >>>> >>>> red >>> >>> [,1] [,2] [,3] [,4] [,5] >>> [1,] 2 0 4 9 6 >>> [2,] 5 0 6 0 1 >>> [3,] 0 2 11 23 20 >>> [4,] 2 1 21 0 3 >>> [5,] 0 7 0 52 0 >>> >>> Please, help thanks. >>> Amit >>> >>> ______________________________________________ >>> R-help@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. >>> >> > > ______________________________________________ > R-help@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. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? ______________________________________________ R-help@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.