[R] Calculating a Maximum for a row or column with NA's

David Winsemius dwinsemius at comcast.net
Sun Apr 18 07:01:19 CEST 2010


On Apr 18, 2010, at 12:16 AM, steven mosher wrote:

> Is there a simple way to calculate the maximum for a row or column  
> of a
> matrix when there are NA,s present.
>
> # given a matrix that has any number of NA per row
>> m<-matrix(c(seq(1,9)),nrow=3)
>> m
>     [,1] [,2] [,3]
> [1,]    1    4    7
> [2,]    2    5    8
> [3,]    3    6    9
>> m[3,1]=NA
>> m[1,]=NA
>> m
>     [,1] [,2] [,3]
> [1,]   NA   NA   NA
> [2,]    2    5    8
> [3,]   NA    6    9
>
> # applying max to rows doesnt work as max returns
> # NA if any of the elements is NA.
>> row_max<-apply(m,1,max)
>> row_max
> [1] NA  8 NA
>
> # my desired result given m would be:
> #  NA, 8, 9

Not exactly your desired result, but surely you could fix that:

 > row_max<-apply(m,1,max, na.rm=TRUE)
Warning message:
In FUN(newX[, i], ...) : no non-missing arguments to max; returning -Inf
 > row_max
[1] -Inf    8    9


>
> 	[[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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list