Comment appliquer des fonctions à un vecteur de R

La apply () fonction travaille sur tout ce qui a des dimensions en R, mais que faire si vous ne disposez pas des dimensions? Pour cela, vous disposez de deux fonctions connexes de la famille appliquer à votre disposition sapply () et lapply (). La l dans lapply se dresse pour la liste et la s dans sapply supports pour Simplifier.

Les deux fonctions fonctionnent essentiellement de la même - la seule différence est que lapply () toujours retourne une liste avec le résultat, alors que sapply () essaie de simplifier l'objet final, si possible.

Les deux sapply () et lapply () considérer chaque valeur dans le vecteur d'être un élément sur lequel ils peuvent appliquer une fonction. De nombreuses fonctions dans le travail de R d'une manière vectorisée, donc il n'y a souvent pas besoin de l'utiliser.

La commutateur () fonction, cependant, ne fonctionne pas d'une manière vectorisé. Prenons l'exemple de base suivante:




> Sapply (c ('a', 'b'), un commutateur, un = 'Bonjour', b = 'Au revoir') ab "Bonjour" "Au revoir"

La sapply () appel fonctionne très similaire à la apply () appeler, même si vous ne disposez pas d'un argument qui spécifie l'index. Voici un résumé:

  • Le premier argument est le vecteur sur lequel les valeurs que vous souhaitez appliquer la fonction - dans ce cas, le vecteur taxi').

  • Le deuxième argument est le nom de la fonction - dans ce cas, interrupteur.

  • Tous les autres arguments sont tout simplement les arguments que vous passez à la interrupteur fonction.

La sapply () fonction prend maintenant d'abord la valeur 'un' et ensuite la valeur 'b' que le premier argument de commutateur (), en utilisant les arguments a = 'Bonjour' et b = 'Au revoir' chaque fois que les autres arguments. Il combine à la fois les résultats dans un vecteur et utilise les valeurs de taxi') que les noms pour le vecteur résultant.

La sapply () la fonction a un argument USE.NAMES que vous pouvez définir pour FAUX si vous ne voulez pas sapply () d'utiliser des valeurs de caractères que les noms pour le résultat.


» » » » Comment appliquer des fonctions à un vecteur de R