Comptage d'occurence par strates

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

Serge Faye
Messages : 34
Enregistré le : 14 Mar 2007, 09:49

Comptage d'occurence par strates

Messagepar Serge Faye » 07 Mar 2011, 10:22

bonjour,
Je cherche à compter le nombre d'occurences dans les différentes strates constituées par les modalités des variables catégorielles.
J'ai essayé avec du vba et le traitement est très long.

1. Je dispose d'une table d'individus avec les variables suivantes :
* année : 2001 à 2005
* sexe : Masculin, Féminin
* activité : activite 1, activité 2, activité 3
* age: < 30 ans, 30 -40 abs et > 40 ans

2. J'aimerais compter pour chaque année, sexe, activité, age, le nombre d'occurence.

Merci pour votre aide,

Nicolas Péru
Messages : 1408
Enregistré le : 07 Aoû 2006, 08:13

Messagepar Nicolas Péru » 07 Mar 2011, 10:37

Bonjour,

Regardez les fonctions by, aggregate ou encore tapply.

Une recherche sur le forum vous donnera de nombreux exemples déjà traité à ce sujet...

Nicolas

Serge Faye
Messages : 34
Enregistré le : 14 Mar 2007, 09:49

Messagepar Serge Faye » 07 Mar 2011, 10:40

bonjour,
J'aurai du préciser que c'est un comptage d'ensemble et de façon particulière, partir d'une table d'individus pour obtenu une table de comptage de ces mêmes individus dans les différentes strates constituées par les modalités des variables qui leurs caractérisennt.
Merci

Nicolas Péru
Messages : 1408
Enregistré le : 07 Aoû 2006, 08:13

Messagepar Nicolas Péru » 07 Mar 2011, 10:43

Difficile de comprendre sans au moins un extrait des données voire un exemple reproductible ou ce à quoi vous voulez arriver.

Nicolas

Serge Faye
Messages : 34
Enregistré le : 14 Mar 2007, 09:49

Messagepar Serge Faye » 07 Mar 2011, 11:04

encore une fois merci.
Le jeu de données de départ est sous la forme:
    Nomcentre pstNotifier LibSexe CategAge
    Amiens 2001 Homme < 30 ans
    Amiens 2001 Femme < 30 ans
    Amiens 2002 Femme < 30 ans
    Angers 2001 Femme > 30 ans
    Angers 2001 Femme > 30 ans

et le jeu de données final avec une nouvelle variable de comptage (nb) et le suivant:
    Nomcentre pstNotifier LibSexe CategAge nb
    Amiens 2001 Femme < 30ans 1
    Amiens 2001 Homme < 30ans 1
    Amiens 2001 Femme > 30 ans 0
    Amiens 2001 Homme > 30 ans 0
    Amiens 2002 Femme < 30ans 1
    Amiens 2002 Homme < 30ans 0
    Amiens 2002 Femme > 30 ans 0
    Amiens 2002 Homme > 30 ans 0
    Amiens 2003 Femme < 30ans 0
    Amiens 2003 Homme < 30ans 0
    Amiens 2003 Femme > 30 ans 0
    Amiens 2003 Homme > 30 ans 0
    Angers 2001 Femme < 30ans 0
    Angers 2001 Homme < 30ans 0
    Angers 2001 Femme > 30 ans 2
    Angers 2001 Homme > 30 ans 0
    Angers 2002 Femme < 30ans 0
    Angers 2002 Homme < 30ans 0
    Angers 2002 Femme > 30 ans 0
    Angers 2002 Homme > 30 ans 0
    Angers 2003 Femme < 30ans 0
    Angers 2003 Homme < 30ans 0
    Angers 2003 Femme > 30 ans 0
    Angers 2003 Homme > 30 ans 0


en faisant sum(nb) on obtient le nrows(table départ)

Nicolas Péru
Messages : 1408
Enregistré le : 07 Aoû 2006, 08:13

Messagepar Nicolas Péru » 07 Mar 2011, 11:10

je veux pas avoir l'air de me buter mais je ne vois pas où est le frein à l'utilisation de by and co...

par exemple (non testé) :

Code : Tout sélectionner

by(nb,list(Nomcentre, pstNotifier, LibSexe, CategAge),sum)


ou alors je n'ai toujours pas compris la demande :D

Nicolas

Serge Faye
Messages : 34
Enregistré le : 14 Mar 2007, 09:49

Messagepar Serge Faye » 07 Mar 2011, 11:25

Je vais essayer avec votre exemple et je vous tiens au courant

Serge Faye
Messages : 34
Enregistré le : 14 Mar 2007, 09:49

Messagepar Serge Faye » 08 Mar 2011, 16:27

Je reviens vers vous.
j'ai testé votre ligne de code , en l'adaptant à mon jeu de données.

Code : Tout sélectionner

by(patho, list(centre,activite,cage,patho,lsexe),nrow)

patho est une variable qualitative, c'est pourquoi, je met nrow pour le comptage. Sauf qu'ici, il me renvoie que des null par exemple:
    : Rennes
    : Transport et communication (60-64)
    : 60 - 70 ans
    : Autres
    : Homme
    NULL
    ---------------------------------------------------------------------------------------------------------------------
    : Rouen
    : Transport et communication (60-64)
    : 60 - 70 ans
    : Autres
    : Homme
    NULL
    ---------------------------------------------------------------------------------------------------------------------
    : Saint-Etienne
    : Transport et communication (60-64)
    : 60 - 70 ans
    : Autres
    : Homme
    NULL
J'ai également essayé le code suivant :

Code : Tout sélectionner

 table(centre,activite,cage,patho,lsexe)
et le résultat qui du genre autant de tableaux sur la base des combinaisons suivantes :
, , cage = 60 - 70 ans, patho = Autres, lsexe = Homme


Je me suis amusé à modifié le code précédent de la manière suivante :

Code : Tout sélectionner

 cbind(table(centre,activite,cage,patho,lsexe))
et le résulat est le suivant:
[62478,] 0
[62479,] 0
[62480,] 0
[62481,] 0
[62482,] 2
[62483,] 0
[62484,] 0
[62485,] 1
[62486,] 0
et j'ai l'impression que la valeur entre crochet représente la combinaison [centre, activite, cage, patho, lsexe] et la valeur numérique le nombre d'occurence dans la combinaison.
Merci de votre aide


Retourner vers « Questions en cours »

Qui est en ligne

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

cron