[R] removing missing values from a matrix
Amit Kumar
amitkumartiwary at gmail.com
Fri Oct 2 11:26:19 CEST 2009
Thanks! Jim
It solved my problem.
Best
Amit
On Fri, Oct 2, 2009 at 11:19 AM, jim holtman <jholtman at gmail.com> wrote:
> 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 <amitkumartiwary at 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 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.
>>>>
>>>
>>
>> ______________________________________________
>> 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.
>>
>
>
>
> --
> Jim Holtman
> Cincinnati, OH
> +1 513 646 9390
>
> What is the problem that you are trying to solve?
>
More information about the R-help
mailing list