ex-aequos / wilcox.test / multicompletters / problème de NaN

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

margot julien
Messages : 46
Enregistré le : 28 Nov 2017, 12:10

ex-aequos / wilcox.test / multicompletters / problème de NaN

Messagepar margot julien » 06 Déc 2019, 09:29

Bonjour,

mes données sont non normales alors j'ai réalisé un test de kruskal wallis et un test de wilcoxon.

Dans la réponse de mon test de wilcoxon j'ai des warnings car il y a des ex-aequos, comme ceci:

Code : Tout sélectionner

> fi5$condition <- interaction(fi5$var, fi5$temp, sep="_")
> P   = pairwise.wilcox.test(x = fi5$glc, g = fi5$condition)
There were 49 warnings (use warnings() to see them)
> warnings()
Messages d'avis :
1: In wilcox.test.default(xi, xj, paired = paired, ...) :
  impossible de calculer la p-value exacte avec des ex-aequos
2: In wilcox.test.default(xi, xj, paired = paired, ...) :
  impossible de calculer la p-value exacte avec des ex-aequos


En effet, certaines données sont identiques mais ce n'est pas une erreur ce sont les mesures reelles ce qui signifie pour moi qu'il n'y a pas de dfiférence significative entre mes groupes qui ont les mêmes valeurs sauf que dans la réponse pour ces ex-aequos R fourni des NaN au lieu des p-values quand j'appelle mes p-value comme ceci:

Code : Tout sélectionner

PT  = P$p.value
PT


voici un exemple de mon tableau réponse triangulaire:
Agria_4 Kiebitz_4 Lady Claire_4 Markies_4 Pirol_4 Verdi_4 Agria_8 Kiebitz_8
Pirol_8 0.4721823 0.7610958 1.0000000 0.4721823 0.4721823 0.4721823 0.7610958 NaN
Verdi_8 0.4721823 0.7610958 1.0000000 0.4721823 0.4721823 0.4721823 0.7610958 NaN


j'utilise la fonction suivante que j'ai trouvé sur internet pour convertir en tableau rectangulaires:

Code : Tout sélectionner

fullPTable =
  function(PT)
  {
    PTa <- rep(c(NA_real_),length(PT[,1]))         # Add a row
    PT1 <- rbind(PTa, PT)
    rownames(PT1)[1] <- colnames(PT1)[1]
    PTb <- rep(c(NA_real_),length(PT1[,1]))        # Add a column
    PT1 <- cbind(PT1, PTb)
    n <- length(PT1[,1])
    colnames(PT1)[n] <- rownames(PT1)[n]
    PT2 = t(PT1)                                   # Create new transposed
    PT2[lower.tri(PT2)] = PT1[lower.tri(PT1)]
    diag(PT2) = signif(1.00, digits = 4)           # Set the diagonal
    PT2
  }
PT1 = fullPTable(PT)
PT1

et ensuite j'utilise ceci pour extraire les lettres pour faire mon graphique:

Code : Tout sélectionner

library(multcompView)
multcompLetters(PT1, compare = "<", threshold = 0.05, Letters = c(letters,
                                                                LETTERS, "."), reversed = FALSE)


sauf que j'ai le message d'erreur suivant:

Code : Tout sélectionner

Error in if (k2 == 0) { : missing value where TRUE/FALSE needed
et c'est à cause des ex-aequos

est-ce qu'il y a un moyen / code d'avoir mes lettres pour mon graphiques? par exemple en attribuant la même lettre aux ex-aequos puisqu'ils ne sont pas différents?

Merci par avance.
Cordialement.

Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité