On 14/07/2009, at 1:46 PM, Tish Robertson wrote:

Hi folks,

I'm trying to do something that seems like it should easy, but it apparently isn't. I have two large matrices, both containing a number of missing values at different cells. I would like to average these matrices, but the NAs are preventing me. I get a "non- numeric argument to binary operator" error. That's the first problem.

This error has nothing to do with NAs. There's something else wrong with
        your data.  ***Look*** at them!!!

test<-read.csv("test.csv",header=FALSE)
test2<-read.csv("test2.csv",header=FALSE)
test_ <- as.matrix(test,na.rm=T)
test2_ <- as.matrix(test2,na.rm=T)

What on earth do you expect to accomplish by the two foregoing calls?
There is no na.rm argument to as.matrix() and even if there were, what
the hell did you expect to get?  What did you expect the dimension of
the results to be?  If NAs were removed, how could things possibly be
arranged in order that the following would make any sense at all?

testave<- (test_+test2_)/2

??

        Indeed.

So off the bat I'm doing something wrong.

        That's for sure.

        Did you ***look*** at ``test_'' and ``test2_''?

How would I replace the missing values in one matrix with the corresponding non-missing values in another? It's acceptable to me if I only have one value representing the average for a particular coordinate.
Any help would be appreciated!

The simplest thing to do would be

testave <- apply(cbind(as.vector(test),as.vector(test2)), 1,mean,na.rm=TRUE)
        testave <- matrix(testave,nrow=nrow(test),ncol=ncol(test))

Slightly sexier:  Install and load the package abind;  then

        testave <- apply(abind(test,test2,along=3),c(1,2),mean,na.rm=TRUE)

Note that mean() ***does*** have an na.rm argument!!!

        cheers,

                Rolf Turner

######################################################################
Attention:\ This e-mail message is privileged and confid...{{dropped:9}}

______________________________________________
[email protected] 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.

Reply via email to