[R] Newbie: Matrix indexing

Pascal BLEUYARD p.bleuyard at opgc.univ-bpclermont.fr
Tue Mar 22 11:26:26 CET 2005


Hi all,

  I need to compute some "occurence matrix": given a zero matrix and a set
of paired indexes, I want to store the number of occurences of each paired
index in a matrix. The paired indexes are stores as an index matrix. I
prefere not to use loops for performances purpose.

  Here follows a dummy example:

> occurence <- matrix(0, 2, 2); data
     [,1] [,2]
[1,]    0    0
[2,]    0    0
>
> index <- matrix(1, 3, 2); index
     [,1] [,2]
[1,]    1    1
[2,]    1    1
[3,]    1    1
>
> occurence[index] <- occurence[index] + 1

  I was expecting the folowing result:

> occurence
     [,1] [,2]
[1,]    3    0
[2,]    0    0

  I get instead:

> occurence
     [,1] [,2]
[1,]    1    0
[2,]    0    0

  I guess that there is some "hidden copy" involved but I wanted to know if
there is an efficient workaround (not using some loop structure). I thought
"factors" could do the job but I didn't manage to use them for that problem.

----------------------------------------------------------------------------
Pascal BLEUYARD
Laboratoire de Météorologie Physique (LaMP)
OPGC, Université Blaise Pascal
24, avenue des Landais
63177 AUBIERE CEDEX
Tél  : 04 73 40 73 75
Fax : 04 73 40 51 36
Mél : P.Bleuyard at opgc.univ-bpclermont.fr




More information about the R-help mailing list