J'ai mon tableau "ubiquity":
Code : Tout sélectionner
product pays 1 pays 2 pays 3 pays 4
p1 1 1 1 1
p2 1 1 0 1
p3 0 0 1 0
p4 0 1 0 0
p5 0 1 0 1
p6 0 0 1 0
p7 1 1 1 1
p8 0 0 0 0
Les indices 1 et 0 indiquent si p est produit par un pays donné ou non.
Je voudrais calculer, pour tout deux produits (i et k), combien de pays (j) produisent ces deux produits.
Je voudrais aussi représenter le résultat sous forme d'une matrice symétrique de produits comme suit:
Code : Tout sélectionner
p1 p2 p3 p4 ...
p1 1 1 0 1
p2 6 0 1 2
p3 5 3 4 3
p4 0 1 0 1
...
Pour ce faire, j'ai essayé avec le code suivant:
Code : Tout sélectionner
> ubiquity <- read.csv('D:/ubiquity.csv', header = TRUE, sep = ";")
>M<-matrix(nrow=nrow(ubiquity),*ncol=nrow(ubiquity))
> for (i in 1:nrow(ubiquity)){
+ for (k in i+1:nrow(ubiquity)){
+ t <- 0
+ for (j in 2:ncol(ubiquity)){
+ if(ubiquity[i,j]==ubiquity[k,j]){
+ t <- t+1
+ }
+ }
+ M[i,k] <- t
+ }
+ }
Error in if (ubiquity[i, j] == ubiquity[k, j]) { :
valeur manquante là où TRUE / FALSE est requis
Je sais pas si la méthode que j'ai utilisé peut me donner le résultat souhaité et j'ai pas compris aussi l'erreur affiché sous R.
J'espère que vous pouvez m'aider.
Merci infiniment.