Nom de l'ensemble de données: exemple.Meilleur code pour obtenir le rapport d'une entité par groupe?
Col1: ID
Col2: SEX (facteur 2 niveaux "m", "f")
Col3: SIU (facteur 2 niveaux "Y", "N")
Je veux obtenir le ratio de SEX par SIU. Je peux obtenir le résultat avec ce code:
prop.table(table(sample %>% filter(SIU=="N") %>% select(SEX)))
prop.table(table(sample %>% filter(SIU=="Y") %>% select(SEX)))
mais il se compose de 2 phrases il faut être exécuté 2 fois.
Existe-t-il une meilleure façon de faire la même chose?
EDIT:
résultat du code ci-dessus
> m f
> 0.4529346622 0.5470653378
> m f
> 0.3604651163 0.6395348837
Il est ce que je veux, mais je pense que mon code n'est pas le meilleur.
peut-être remplacer le filtre '(SIU == "N")' 'avec group_by (SIU)' – timfaber
Je ne sais pas comment vous voulez que le rapport du sexe, mais peut-être globale peut aider: 'global (df $ SEX, par = liste (df $ SIU), table) 'ou' agrégation (df $ SEX, par = liste (df $ SIU), fonction (x) somme (x == 'm')/longueur (x)) ' – Osdorp
désolé pour ma question imprécise. Je veux comme ceci: N: 0.45 (mâle) 0.54 (femelle), Y: 0.36 (mâle) 0.64 (femelle) –