ex-aequos / wilcox.test / multicompletters / problème de NaN
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:
1 2 3 4 5 6 7 8 9
| > 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:
voici un exemple de mon tableau réponse triangulaire:
Citation:
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| 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:
1 2 3
| library(multcompView)
multcompLetters(PT1, compare = "<", threshold = 0.05, Letters = c(letters,
LETTERS, "."), reversed = FALSE) |
sauf que j'ai le message d'erreur suivant :
Citation:
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.