[R] sum(..., na.rm=TRUE) oddity
rohan sadler
rsadler at agric.uwa.edu.au
Mon Apr 28 12:27:07 CEST 2003
Okay,
This is one of the cases where I can answer my own foolishness. If I
don't define the switch as na.rm=TRUE, but instead just as TRUE - which
is my usual practice with other functions - then sum counts the TRUE as
another vector object, and counts it as one. So much for saving keystrokes.
rohan sadler wrote:
> Hi all,
>
> I get two different results when using sum() and the switch na.rm. The
> result is correct when na.rm=FALSE.
> Linux Redhat 7.3, R version 1.6.1.
>
> I've had no luck searching the mail archives, so I was hoping somebody
> could explain/check this one for me. I will need to apply the function
> to missing data, simple as it is.
>
> Code:
>
> x<-matrix(runif(20,0,5)%/%1,4,5) # random matrix data set 4x5, values
> are integers between 0 and 4
>
> coords<-c(2,3,3,4) # choose any sub-matrix, with
> c(ymin,ymax,xmin,xmax) being row and column indices.
>
> occupied.counter<-function(coords){sum(x[coords[3]:coords[4],coords[1]:coords[2]])}
>
>
> occupied.counter(coords)
> [1] 7
>
> occupied.counter<-function(coords){sum(x[coords[3]:coords[4],coords[1]:coords[2]],
> na.rm=TRUE)}
>
> occupied.counter(coords)
> [1] 8
>
>
> Cheers in advance
>
> Rohan Sadler
>
--
PhD Student, Ecosystems Research Group (ERGO)
School of Plant Biology (Botany), Faculty of Natural & Agricultural Sciences,
The University of Western Australia, 35 Stirling Highway, Crawley WA 6009, Australia
Ph: +61 8 9380 7914
Fax: +61 8 9380 7925
email: rsadler at agric.uwa.edu.au
ERGO's web site:<http://www.botany.uwa.edu.au/ergo>
More information about the R-help
mailing list