[R] NAs and row/column calculations
Greg Snow
Greg.Snow at imail.org
Thu Mar 11 23:36:09 CET 2010
What do you expect a[!is.na(a)] to be?
The a matrix has 30 elements, 5 rows, and 6 columns. You tell R to throw away 4 elements leaving you with 26, the computer (and most of the rest of us) doesn't know how to make a 5x6 matrix with only 26 elements. It could make a 2x13 or 13x2, but that is unlikely what you want, so it just returns a vector without dimensions which then confuses the apply function.
Instead try:
> apply(a,2,sum, na.rm=TRUE)
Or
> apply(a, 2, function(x) sum( x[!is.na(x)] ) )
Hope this helps,
--
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.snow at imail.org
801.408.8111
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Jim Bouldin
> Sent: Thursday, March 11, 2010 3:26 PM
> To: R help
> Subject: [R] NAs and row/column calculations
>
>
> I continue to have great frustrations with NA values--in particular
> making
> summary calculations on rows or cols of a matrix containing them. For
> example, why does:
>
> > a = matrix(1:30,nrow=5)
> > is.na(a[c(1:2),c(3:4)]);a
> [,1] [,2] [,3] [,4] [,5] [,6]
> [1,] 1 6 NA NA 21 26
> [2,] 2 7 NA NA 22 27
> [3,] 3 8 13 18 23 28
> [4,] 4 9 14 19 24 29
> [5,] 5 10 15 20 25 30
> > apply(a[!is.na(a)],2,sum)
>
> give me this:
>
> "Error in apply(a[!is.na(a)], 2, sum) : dim(X) must have a positive
> length"
>
> when
>
> > dim(a)
> [1] 5 6
>
> What is the trick to calculating summary values from rows or columns
> containing NAs? Drives me nuts. More nuts that is.
>
> Thanks.
>
>
>
>
> Jim Bouldin, PhD
> Research Ecologist
> Department of Plant Sciences, UC Davis
> Davis CA, 95616
> 530-554-1740
>
> ______________________________________________
> 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.
More information about the R-help
mailing list