[R] problem with apply(m, 1, min, na.rm=T)

Marc Schwartz marc_schwartz at comcast.net
Wed Jan 21 00:41:50 CET 2009


on 01/20/2009 05:26 PM Czerminski, Ryszard wrote:
> Passing extra arguments to FUN=mean or median in apply
> seems fine, but when FUN=min warnings are generated?
> See below.
> 
> Any ideas why?
> 
> Best regards,
> Ryszard
> 
> Ryszard Czerminski
> AstraZeneca Pharmaceuticals LP
>  
>> m
>      [,1] [,2]
> [1,]    1    2
> [2,]    3   NA
> [3,]   NA   NA
>> apply(m, 1, median, na.rm=T)
> [1] 1.5 3.0  NA
>> apply(m, 1, mean, na.rm=T)
> [1] 1.5 3.0 NaN
>> apply(m, 1, min, na.rm=T)
> [1]   1   3 Inf
> Warning message:
> In FUN(newX[, i], ...) : no non-missing arguments to min; returning Inf

Not a problem with min(), it is an issue with the last row being an
empty set after removing the 2 NAs since na.rm = TRUE.

> min(NA, NA, na.rm = TRUE)
[1] Inf
Warning message:
In min(NA, NA, na.rm = TRUE) :
  no non-missing arguments to min; returning Inf


You are effectively doing:

> min(numeric(0))
[1] Inf
Warning message:
In min(logical(0)) : no non-missing arguments to min; returning Inf


See:

http://wiki.r-project.org/rwiki/doku.php?id=tips:surprises:emptysetfuncs

for more information on empty sets.

HTH,

Marc Schwartz




More information about the R-help mailing list