Tableau croisé dynamique sous R

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

mafab francoise
Messages : 7
Enregistré le : 01 Avr 2018, 16:14

Re: Tableau croisé dynamique sous R

Messagepar mafab francoise » 17 Avr 2019, 08:46

Mon tableau de données ressemble à ça :
Sites Mois Transect Taille Comportement Genre_coraux
1 Turtle_point Fevrier 1 30 mange Galaxea
2 Turtle_point Fevrier 1 45 mange roche
3 Turtle_point Fevrier 2 32 repos roche
4 Turtle_point Fevrier 2 35 repos roche
5 Turtle_point Fevrier 2 45 repos roche
6 Turtle_point Fevrier 3 40 repos roche
7 Turtle_point Fevrier 3 42 mange Porites
8 Turtle_point Mars 1 70 cache <NA>
9 Turtle_point Mars 2 80 cache <NA>

puis j'ai ça : tab<-table(Comportement,Mois,Sites)
tab
tab<-table(Comportement,Mois,Sites)
> tab

, , Sites = Anemone_garden

Mois
Comportement Fevrier Mars
cache 0 0
mange 0 9
repos 0 2

, , Sites = Turtle_cave

Mois
Comportement Fevrier Mars
cache 0 0
mange 23 0
repos 1 0

, , Sites = Turtle_point

Mois
Comportement Fevrier Mars
cache 0 2
mange 3 1
repos 4 5

le tableau des effectifs est le bon

mais ensuite :

prop.table(tab)

, , Sites = Anemone_garden

Mois
Comportement Fevrier Mars
cache 0.00 0.00
mange 0.00 0.18
repos 0.00 0.04

, , Sites = Turtle_cave

Mois
Comportement Fevrier Mars
cache 0.00 0.00
mange 0.46 0.00
repos 0.02 0.00

, , Sites = Turtle_point

Mois
Comportement Fevrier Mars
cache 0.00 0.04
mange 0.06 0.02
repos 0.08 0.10

Je n'ai pas du tout les mêmes résultats que lorsque je le fais sous Excel par exemple...
je devrai obtenir ça :
Sites Mois Comportement Pourcentage
Turtle_point Fevrier mange 42.85
Turtle_point Fevrier repos 57.14
Turtle_point Fevrier cache 0
Turtle_point Mars mange 12.5
Turtle_point Mars repos 62.5
Turtle_point Mars cache 25
Turtle_cave Fevrier mange 95.83
Turtle_cave Fevrier repos 4.17
Turtle_cave Fevrier cache 0
Anemone_garden Mars mange 81.81
Anemone_garden Mars repos 18.18
Anemone_garden Mars cache 0


J'espère que je suis clair..
Merci

mafab francoise
Messages : 7
Enregistré le : 01 Avr 2018, 16:14

Re: Tableau croisé dynamique sous R

Messagepar mafab francoise » 17 Avr 2019, 08:55

Mon tableau de données ressemble à ça :

data<-read.table("taille_comportement_genre.txt",header=T)
> data
Sites Mois Transect Taille Comportement Genre_coraux
1 Turtle_point Fevrier 1 30 mange Galaxea
2 Turtle_point Fevrier 1 45 mange roche
3 Turtle_point Fevrier 2 32 repos roche
4 Turtle_point Fevrier 2 35 repos roche
5 Turtle_point Fevrier 2 45 repos roche
6 Turtle_point Fevrier 3 40 repos roche
7 Turtle_point Fevrier 3 42 mange Porites
8 Turtle_point Mars 1 70 cache <NA>
9 Turtle_point Mars 2 80 cache <NA>

puis

tab<-table(Comportement,Mois,Sites)
> tab

, , Sites = Anemone_garden

Mois
Comportement Fevrier Mars
cache 0 0
mange 0 9
repos 0 2

, , Sites = Turtle_cave

Mois
Comportement Fevrier Mars
cache 0 0
mange 23 0
repos 1 0

, , Sites = Turtle_point

Mois
Comportement Fevrier Mars
cache 0 2
mange 3 1
repos 4 5

jusque là tout est ok,

prop.table(tab)
, , Sites = Anemone_garden

Mois
Comportement Fevrier Mars
cache 0.00 0.00
mange 0.00 0.18
repos 0.00 0.04

, , Sites = Turtle_cave

Mois
Comportement Fevrier Mars
cache 0.00 0.00
mange 0.46 0.00
repos 0.02 0.00

, , Sites = Turtle_point

Mois
Comportement Fevrier Mars
cache 0.00 0.04
mange 0.06 0.02
repos 0.08 0.10

là je n'ai pas les bonnes valeurs je devrai obtenir par exemple pour anemone garden mars mange : 9/11=0.81 et non 0.18...

Merci

Pierre-Yves Berrard
Messages : 647
Enregistré le : 12 Jan 2016, 23:30

Re: Tableau croisé dynamique sous R

Messagepar Pierre-Yves Berrard » 17 Avr 2019, 08:56

Les valeurs que vous obtenez sont les pourcentages rapportés au nombre total d'observations (9/50 = 0.18).

Pour calculer des pourcentages en fixant une ou plusieurs dimensions, utiliser l'argument margin.

Code : Tout sélectionner

prop.table(tab, margin = c(1, 3))
PY

mafab francoise
Messages : 7
Enregistré le : 01 Avr 2018, 16:14

Re: Tableau croisé dynamique sous R

Messagepar mafab francoise » 17 Avr 2019, 10:31

Merci,
à quoi correspond le 1 et le 3 dans margin ? je n'ai toujours pas les bonnes valeurs.
peut être que je dois changer les valeurs dans margin ?

Pierre-Yves Berrard
Messages : 647
Enregistré le : 12 Jan 2016, 23:30

Re: Tableau croisé dynamique sous R

Messagepar Pierre-Yves Berrard » 17 Avr 2019, 12:07

Oui cela doit être c(2, 3)
Cela signifie qu'il faut fixer la 2e dimension (Mois) et la 3e dimension (Site) et calculer le pourcentage sur la 1re dimension (Comportement).
PY

mafab francoise
Messages : 7
Enregistré le : 01 Avr 2018, 16:14

Re: Tableau croisé dynamique sous R

Messagepar mafab francoise » 17 Avr 2019, 13:06

Merci infiniment, je comprend donc mieux où était mon problème.
je vais essayer de poursuivre mes analyses avec un prop.test ou chisq pour voir s'il y a une différence en fonction des mois et des sites.
merci bcp


Retourner vers « Questions en cours »

Qui est en ligne

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