Suppression de données et création d'une nouvelle table (filter)

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

Maxime de St Roman
Messages : 8
Enregistré le : 02 Sep 2020, 09:29

Suppression de données et création d'une nouvelle table (filter)

Messagepar Maxime de St Roman » 04 Sep 2020, 07:04

Bonjour à tous,

Je souhaite créer un nouveau tableau à partir d'une table existante afin de ne comparer que certaine modalités d'une expérimentation.
J'utilise pour cela la fonction filter. Par exemple ici je ne souhaite comparer entre elles uniquement les modalités avec rotation de culture

Code : Tout sélectionner

Geranium<-dataMax%>%
  filter(Culture=="Geranium",Rota!="No_Rota")


J'utilise ensuite un test de kruskal-Wallis (car mes données ne sont pas normales) afin d'observer ou non des différences significatives.

Code : Tout sélectionner

kmc<-kruskalmc(Geranium$Rdt_pied~Geranium$Traitement, probs=0.05)
print(kmc)   


Et je constate que le test détecte les modalités que j'ai pourtant filtré auparavant. (Les NAN Values correspondant à des comparaison avec des modalités que je pensais avoir enlevé.) Pourtant en affichant le tableau créé pour le test, les modalités sans rotations n'apparaissent pas.

Code : Tout sélectionner

Multiple comparison test after Kruskal-Wallis
p.value: 0.05
Comparisons
             obs.dif critical.dif difference
G-G(1)     67.811111     61.97742       TRUE
G-G(2)     34.777778     61.97742      FALSE
G-G(3)      6.400000     61.97742      FALSE
G-G(4)      9.294444     61.97742      FALSE
G-G(A)           NaN          Inf         NA
G-G(H)           NaN          Inf         NA
G-G(S)           NaN          Inf         NA
G-G(T)           NaN          Inf         NA
G(1)-G(2) 102.588889     61.97742       TRUE
G(1)-G(3)  61.411111     61.97742      FALSE
G(1)-G(4)  77.105556     61.97742       TRUE
G(1)-G(A)        NaN          Inf         NA
G(1)-G(H)        NaN          Inf         NA
G(1)-G(S)        NaN          Inf         NA
G(1)-G(T)        NaN          Inf         NA
G(2)-G(3)  41.177778     61.97742      FALSE
G(2)-G(4)  25.483333     61.97742      FALSE
G(2)-G(A)        NaN          Inf         NA
G(2)-G(H)        NaN          Inf         NA
G(2)-G(S)        NaN          Inf         NA
G(2)-G(T)        NaN          Inf         NA
G(3)-G(4)  15.694444     61.97742      FALSE
G(3)-G(A)        NaN          Inf         NA
G(3)-G(H)        NaN          Inf         NA
G(3)-G(S)        NaN          Inf         NA
G(3)-G(T)        NaN          Inf         NA
G(4)-G(A)        NaN          Inf         NA
G(4)-G(H)        NaN          Inf         NA
G(4)-G(S)        NaN          Inf         NA
G(4)-G(T)        NaN          Inf         NA
G(A)-G(H)        NaN          Inf         NA
G(A)-G(S)        NaN          Inf         NA
G(A)-G(T)        NaN          Inf         NA
G(H)-G(S)        NaN          Inf         NA
G(H)-G(T)        NaN          Inf         NA
G(S)-G(T)        NaN          Inf         NA



Pour le moment je n'ai pas trouvé d'autres solutions que de copier le nouveau tableau (après filtrage) dans un doc excel et de l'importer à nouveau dans R mais je suppose qu'il existe des solutions plus propres...

Merci d'avance pour l'aide que vous pourriez apporter!

Bastien Gamboa
Messages : 151
Enregistré le : 13 Jan 2011, 21:31

Re: Suppression de données et création d'une nouvelle table (filter)

Messagepar Bastien Gamboa » 04 Sep 2020, 07:17

Bonjour,

Je suppose que Geranium$Traitement est un factor. Quand on subset un factor les modalités qui ne sont plus représentées restent des levels de ce facteur.
Vous pouvez supprimer les levels non-représentés après filtre via droplevels().

Code : Tout sélectionner

Geranium <- droplevels(Geranium)

HTH,
Bastien

Maxime de St Roman
Messages : 8
Enregistré le : 02 Sep 2020, 09:29

Re: Suppression de données et création d'une nouvelle table (filter)

Messagepar Maxime de St Roman » 04 Sep 2020, 07:23

Effectivement!
Merci beaucoup et bonne journée !


Retourner vers « Questions en cours »

Qui est en ligne

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