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
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.