Bonjour
Tu dois effectivement t'affranchir des problèmes liées aux valeurs texte.
ci-dessous un exemple reproductible
Code : Tout sélectionner
mat1 <- data.frame(fac1=gl(5,4,labels=LETTERS[1:5]),fac2=gl(4,5,labels=letters[1:4]))
mat1
fac1 fac2
1 A a
2 A a
3 A a
4 A a
5 B a
6 B b
7 B b
8 B b
9 C b
10 C b
11 C c
12 C c
13 D c
14 D c
15 D c
16 D d
17 E d
18 E d
19 E d
20 E d
> as.matrix(mat1)
fac1 fac2
[1,] "A" "a"
[2,] "A" "a"
[3,] "A" "a"
[4,] "A" "a"
[5,] "B" "a"
[6,] "B" "b"
[7,] "B" "b"
[8,] "B" "b"
[9,] "C" "b"
[10,] "C" "b"
[11,] "C" "c"
[12,] "C" "c"
[13,] "D" "c"
[14,] "D" "c"
[15,] "D" "c"
[16,] "D" "d"
[17,] "E" "d"
[18,] "E" "d"
[19,] "E" "d"
[20,] "E" "d"
les multiplications de matrice :
Code : Tout sélectionner
> mat1%*%mat1
Erreur dans mat1 %*% mat1 :
nécessite des arguments numériques/complexes matrice/vecteur
> mat1%*%t(mat1)
Erreur dans mat1 %*% t(mat1) :
nécessite des arguments numériques/complexes matrice/vecteur
> as.matrix(mat1)%*%t(as.matrix(mat1))
Erreur dans as.matrix(mat1) %*% t(as.matrix(mat1)) :
nécessite des arguments numériques/complexes matrice/vecteur
Une méthode qui marche (avec acm.disjonctif du package ade4) :
Code : Tout sélectionner
as.matrix(acm.disjonctif(mat1))%*%t(as.matrix(acm.disjonctif(mat1)))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 2 2 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 2 2 2 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3 2 2 2 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4 2 2 2 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5 1 1 1 1 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
6 0 0 0 0 1 2 2 2 1 1 0 0 0 0 0 0 0 0 0 0
7 0 0 0 0 1 2 2 2 1 1 0 0 0 0 0 0 0 0 0 0
8 0 0 0 0 1 2 2 2 1 1 0 0 0 0 0 0 0 0 0 0
9 0 0 0 0 0 1 1 1 2 2 1 1 0 0 0 0 0 0 0 0
10 0 0 0 0 0 1 1 1 2 2 1 1 0 0 0 0 0 0 0 0
11 0 0 0 0 0 0 0 0 1 1 2 2 1 1 1 0 0 0 0 0
12 0 0 0 0 0 0 0 0 1 1 2 2 1 1 1 0 0 0 0 0
13 0 0 0 0 0 0 0 0 0 0 1 1 2 2 2 1 0 0 0 0
14 0 0 0 0 0 0 0 0 0 0 1 1 2 2 2 1 0 0 0 0
15 0 0 0 0 0 0 0 0 0 0 1 1 2 2 2 1 0 0 0 0
16 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 2 1 1 1 1
17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 2 2
18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 2 2
19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 2 2
20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 2 2
HTH
Nicolas