Thanks a lot, this does exactly what I was looking for. On Tue, 15 Jul 2003, Liaw, Andy wrote:
> I don't think for loop is so bad here, but if you insist on not using it, > try: > > > x<-matrix(rnorm(25), 5, 5) > > sapply(1:5, function(i) cor(x[,i], rowSums(x[,-i]))) > [1] -0.04179336 -0.08613796 0.48194936 0.38317629 -0.22081706 > > HTH, > Andy > > > -----Original Message----- > > From: David Andel [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, July 15, 2003 12:52 PM > > To: [EMAIL PROTECTED] > > Subject: [R] matrix manipulations > > > > > > Hi > > > > cor(x,apply(x,1,sum)) gives me the correlations of each > > column with the sums of each row (correct me if I'm wrong, please). > > > > What I need are the correlations of each column with the sums > > of each row except the entry in the given column. It seems > > that for any one column i I get it by doing: > > > > cor(x[,i],apply(x[,-i],1,sum)) > > > > But I struggle to get it for all the columns. I was trying > > things like: > > > > for(i in 1:ncol(x)) cor(x[,i],apply(x[,-i],1,sum)) > > > > which doesn't generate any output at all, and > > > > > rbind(for(i in 1:ncol(x)) cor(x[,i],apply(x[,-i],1,sum))) > > [,1] > > [1,] 0.1880237 > > > > outputs just the result of the very last column. > > > > I know that it shouldn't be necessary to use for(), but I > > couldn't figure out a way how to do the task using e.g. apply(). > > > > How do you get the results of all columns? > > > > Thank you, > > David > > > > ______________________________________________ > > [EMAIL PROTECTED] mailing list > > https://www.stat.math.ethz.ch/mailman/listinfo> /r-help > > ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help