Bonjour à tous,

J'essaie d'obtenir un tableau de fréquences avec plusieurs inputs mais je n'y parviens pas ... Mon jeu de données est de la forme suivante (que je nomme ensuite xxx):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Variable_B Année
       A              2012 
       B              2013 
       A              2013
       D              2012      
       ...                 ...
Une autre variable (Variable_A) est construite de manière ad hoc sur l'échantillon et prend les modalités 1 à 6.

Le but de la procédure est simple : je cherche à obtenir la part de la variable B par modalité de la variable A pour chaque année.


Aucun soucis pour obtenir la part de la variable B par modalité de la variable A avec la procédure suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
>distri.eff <- table(xxx.Variable_A)
> round(distri.eff/sum(distri.eff)*100,1)
> round(100*prop.table(table(xxx.Variable_A,xxx$Variable_B),2),1)
Le résultat est de la forme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Variable_A        A         B        C        D
      1                 11.0   14.6   15.0   20.6
      2                 33.7   20.5   26.8   20.2
      3                 20.2   23.4   20.6   20.7
      4                 15.1   14.3   10.5      7.4
      5                 16.3   20.5   18.2   20.7
      6                   3.7      6.6      8.9   10.4

Dans cette table, la somme de chaque ligne fait 100, on a donc bien la part de la variable B par modalité de la variable A. J'aimerais obtenir maintenant la même chose mais par année. En lancant differentes procédures, R me sort les tables par année. Dans ce cas, la somme des valeurs des 2 tables fait 100 pour chaque modalité de la variable B :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
> distri.eff <- table(xxx.Variable_A, xxx$Année)
> round(distri.eff/sum(distri.eff)*100,1)
> round(100*prop.table(table(xxx.Variable_A,xxx$Variable_B,xxx$Année),2),1)
 
, ,  = 2012
 
Variable_A        A         B        C        D
      1                 10.1   12.3  19.5  12.8
      2                 20.3   12.3  10.5  13.2
      3                   8.3      6.6    4.8     7.0
      4                   7.5      6.6    4.4     5.0
      5                   6.6      6.8    6.9     7.4
      6                   4.1      1.4    1.5     2.5
 
, ,  = 2013
 
Variable_A        A              B               C                D
      1                   9.9         17.3          20.5          17.8
      2                 10.4         13.2          11.3          12.0
      3                    7.9          6.8           5.8              8.7
      4                    3.7          5.8           4.1              2.5
      5                 10.7         10.7           8.3             8.3
      6                    0.6          0.3           2.4              2.9
Or ce n'est pas le résultat que je voudrais, je cherche à ce que la somme de chaque table soit égale à 100 ... Je n'en suis pas très très loin mais je crois que j'ai besoin d'un petit coup de main

N'hésitez pas à me demander d'autres explications si je n'ai pas été assez clair.

Merci d'avance.