[R] counts of each column that are not NA, and/or greater than column means

Patrick Burns pburns at pburns.seanet.com
Mon Feb 4 20:34:36 CET 2008


Gabor Csardi wrote:

>On Mon, Feb 04, 2008 at 03:21:10PM +0800, Ng Stanley wrote:
>  
>
>>Hi,
>>
>>Given a test matrix, test <- matrix(c(1,2,3,NA,2,3,NA,NA,2), 3,3)
>>
>>A) How to compute the counts of each column (excluding the NA) i.e., 3, 2, 1
>>    
>>
>
>apply(test, 2, function(x) sum(!is.na(x)))
>  
>

or more efficiently:

colSums(!is.na(test))

Patrick Burns
patrick at burns-stat.com
+44 (0)20 8525 0696
http://www.burns-stat.com
(home of S Poetry and "A Guide for the Unwilling S User")

>  
>
>>B) How to compute the counts of each column (excluding the NA) that are
>>greater than the column means ? i.e., 1, 1, 0
>>    
>>
>
>apply(test, 2, function(x) sum(x > mean(x, na.rm=TRUE), na.rm=TRUE))
>
>In general, you need ?apply to calculate something for each row/column
>of a matrix.
>
>Gabor
>
>  
>
>>I could write a for loop, but hope to use better alternative.
>>
>>	[[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.
>>    
>>
>
>  
>



More information about the R-help mailing list