Comment utiliser Appliquer pour créer des résumés des tableaux sont en r
Tu utilises tapply ()
Sommaire
X: Un vecteur
INDEX: Un facteur ou liste de facteurs
AMUSANT: Une fonction
Par exemple, calculer la longueur des sépales moyenne dans l'ensemble de données iris:
> Tapply (iris $ Sepal.Length, iris $ Espèces, moyenne) setosa versicolor virginica5.006 5,936 6,588
Avec cette courte ligne de code, vous faites quelques chose de puissant. Vous dites R pour prendre la Sepal.Length colonne, le diviser selon Espèce, puis calculer la moyenne pour chaque groupe.
Ceci est un idiome important pour l'écriture de code en R, et il va généralement sous le nom de Split, sur Appliquer, et de combiner (SAC). Dans ce cas, vous divisez un vecteur en groupes, appliquer une fonction à chaque groupe, puis combiner le résultat dans un vecteur.
Bien sûr, en utilisant la avec () fonction, vous pouvez écrire votre ligne de code dans une manière un peu plus lisible:
> Avec (iris, tapply (Sepal.Length, espèces, signifie)) setosa versicolor virginica5.006 5,936 6,588
Utilisation tapply (), vous pouvez également créer des tableaux plus complexes pour résumer vos données. Vous faites cela en utilisant une liste que votre INDEX argument.
Comment utiliser tapply () pour créer des tableaux de dimensions supérieures
Par exemple, essayer de résumer la trame de données mtcars, une trame de données intégré avec des données sur la performance des moteurs et d'automobiles. Comme avec tout objet, vous pouvez utiliser str () pour inspecter la structure:
> Str (mtcars)
La variable suis est un vecteur numérique qui indique si le moteur a un automatique (0) Ou manuel (1) Boîte de vitesses. Parce que ce ne sont pas très descriptive, commencez par créer un nouvel objet, voitures, qui est une copie de mtcars, et de changer la colonne suis un facteur:
> Autos lt; - à l'intérieur (mtcars, + h lt; - facteur (h, les niveaux = 0: 1, les étiquettes = c ("Automatique", "Manuel")) +)
Maintenant utiliser tapply () pour trouver les moyens miles par gallon (mpg) Pour chaque type de boîte de vitesses:
> With (voitures, tapply (mpg, AM, signifient)) automatique Manual17.14737 24,39231
Oui, vous avez raison. Ceci est encore seulement une table unidimensionnelle. Maintenant, essayez de faire un tableau à deux dimensions avec le type de boîte de vitesses (h) et nombre d'engins (engrenage):
> Avec (voitures, tapply (mpg, liste (engrenages, AM), moyenne)) automatique Manual3 16,10667 21,05000 NA4 26.2755NA 21,380
Tu utilises tapply () pour créer des résumés tabulaires de données. Ceci est un peu similaire à la table() fonction. cependant, table() ne peut créer que des tableaux de contingence (qui est, tableaux de chiffres), alors qu'avec tapply () vous pouvez spécifier une fonction que la fonction d'agrégation. En d'autres termes, avec tapply (), vous pouvez calculer les chiffres, les moyens, ou toute autre valeur.
Si vous voulez résumer des statistiques sur un seul vecteur, tapply () est très utile et rapide à utiliser.
Comment utiliser aggregate ()
Une autre fonction de R qui fait quelque chose de très similaire est agrégat ():
> Avec (voitures, agrégat (mpg, liste (vitesse = vitesse, h = h), moyenne)) gearamx1 3 automatique 16,106672 21,050003 automatique 4 4 Manuel 26,275004 5 Manuel 21,38000
Ensuite, vous prenez agrégat () vers de nouveaux sommets en utilisant l'interface de formule.