Comment utiliser la famille appliquer des fonctions de r

Utilisation pour

Sommaire

boucles a des effets très importants secondaires. Les objets que vous créez dans le pour boucle rester dans l'espace de travail par la suite. Les objets que vous changez dans le pour boucle sont modifiés dans l'espace de travail. Même si cela peut être les intentions pour certains, pour d'autres, cela est un effet secondaire indésirable de la voie pour boucles sont mises en œuvre dans l'arrêt R.

Jetez un oeil à l'exemple suivant:

> Songline lt; - "Sortez de mes rêves ..."> pour (Songline en 1: 5) print ('... Entrez dans ma voiture! »)

Contrairement à ce que vous pouvez vous attendre, après l'exécution de ce code, la valeur de Songline est pas la chaîne «Sortez de mes rêves ...", mais le nombre 5, comme représenté sur la sortie ci-dessous:




> Songline [1] 5

Bien que vous jamais changé explicitement la valeur de Songline n'importe où dans le code, R le fait implicitement lors de la réalisation de la pour boucle. Chaque itération, R réaffecte la valeur suivante à partir du vecteur de Songline . . . dans l'espace de travail!

En choisissant les noms des variables et l'identifiant à bon escient, vous pouvez éviter de courir des ennuis. Lors de l'écriture de grands scripts, vous devez faire un peu de comptabilité sérieuse pour les noms pour éviter les erreurs.

Pour être tout à fait correct, en utilisant un pour boucle a un effet sur l'environnement que vous travaillez dans ce moment. Si vous utilisez juste le pour boucle dans les scripts que vous exécutez dans la console, les effets se tiendra à l'espace de travail. Si vous utilisez un pour boucle dans le corps de la fonction, les effets aura lieu au sein de l'environnement de cette fonction.

Voici les bonnes nouvelles: R a un autre système de bouclage qui est très puissant, qui est au moins aussi vite que pour boucles (et parfois beaucoup plus rapide), et - plus important - que ne présente pas les effets secondaires de l'un pour boucle. En fait, ce système est constitué d'une gamme complète de fonctions connexes, connu sous le nom appliquer famille. Cette famille comprend sept fonctions, tout se terminant par appliquer.

Les caractéristiques de la famille

Avant de commencer à utiliser l'une des fonctions de la famille appliquer, voici propriétés les plus importantes de ces fonctions:

  • Chacune des fonctions appliquer prend au moins deux arguments: un objet et une autre fonction. Vous passez la fonction comme un argument.

  • Aucune de ces appliquer des fonctions a des effets secondaires. Telle est la principale raison pour les utiliser !: Si vous ne pouvez utiliser toutes les fonctions appliquent au lieu d'un pour boucle, utilisez la solution applicable. Soyez conscient que les effets secondaires possibles de la appliqué la fonction ne sont pas pris en charge par la famille appliquer.

  • Chaque fonction peut passer appliquer sur des arguments à la fonction qui est donné comme argument. Il le fait en utilisant la points argument.

  • Chaque fonction de la famille appliquer renvoie toujours un résultat. Utilisation de la famille appliquent n'a de sens que si vous avez besoin de ce résultat. Si vous souhaitez imprimer les messages à la console avec impression() ou chat () par exemple, en utilisant la famille appliquent est inutile.

Rencontrez trois des membres

Dire bonjour à apply (), sapply (), et lapply (), les membres les plus utilisés de la famille appliquer. Chacune de ces fonctions applique une autre fonction à tous les éléments d'un objet. Quels sont ces éléments dépend de l'objet et la fonction.

Nom de la fonctionObjets de la fonction fonctionne surQu'est-ce que la fonction considère comme ElementsType de résultat
appliquerMatriceLignes ou colonnesVecteur, matrice, tableau ou liste
TableauRangées, colonnes, ou de toute dimensionVecteur, matrice, tableau ou liste
Trame de donnéesLignes ou colonnesVecteur, matrice, tableau ou liste
sapplyVecteurÉlémentsVecteur, matrice, ou une liste
Trame de donnéesVariablesVecteur, matrice, ou une liste
ListeÉlémentsVecteur, matrice, ou une liste
lapplyVecteurÉlémentsListe
Trame de donnéesVariablesListe
ListeÉlémentsListe

» » » » Comment utiliser la famille appliquer des fonctions de r