[R] matrix manipulations

apjaworski@mmm.com apjaworski at mmm.com
Tue Jul 15 19:28:10 CEST 2003


David,

I am not sure if it can be done in a vectorized form, but this should work

y <- NULL
for(i in 1:ncol(x)) y <- c(y, cor(x[,i],apply(x[,-i],1,sum)))

Cheers,

Andy

__________________________________
Andy Jaworski
Engineering Systems Technology Center
3M Center, 518-1-01
St. Paul, MN 55144-1000
-----
E-mail: apjaworski at mmm.com
Tel:  (651) 733-6092
Fax:  (651) 736-3122


|---------+-------------------------------->
|         |           "David Andel"        |
|         |           <andel at ifi.unizh.ch> |
|         |           Sent by:             |
|         |           r-help-bounces at stat.m|
|         |           ath.ethz.ch          |
|         |                                |
|         |                                |
|         |           07/15/2003 11:51     |
|         |                                |
|---------+-------------------------------->
  >-----------------------------------------------------------------------------------------------------------------------------|
  |                                                                                                                             |
  |      To:       r-help at stat.math.ethz.ch                                                                                     |
  |      cc:                                                                                                                    |
  |      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

______________________________________________
R-help at stat.math.ethz.ch mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help




More information about the R-help mailing list