Comment réduire le nombre de lignes de r

Lors de la transformation dans le script R, tous les éléments ne sont nécessaires. En fait, la retourner ()

Sommaire

déclaration est facultative, car, par défaut, R retournera toujours la valeur de la dernière ligne de code dans le corps de la fonction.

Retour des valeurs par défaut

Supposons que vous avez oublié d'ajouter retour (résultat) dans le addPercent () fonction. Que se passerait-il alors? Vous pouvez savoir si vous supprimez la dernière ligne de la addPercent () fonction, enregistrez le fichier, et la source de nouveau pour le charger dans l'espace de travail.

Toute modification que vous apportez à une fonction prendra effet seulement après que vous envoyez le code adapté à la console. Ceci aura pour effet d'écraser l'ancien objet de fonction par un nouveau.

Si vous essayez addPercent (new.numbers) encore une fois, vous voyez. . . rien. Apparemment, la fonction ne plus rien faire - mais cela est une illusion, comme vous pouvez le voir avec le code suivant:

> Print (addPercent (new.numbers)) [1] "82,2%" "2,5%" "162%" "40%"



Dans ce cas, la dernière ligne de la fonction retourne la valeur de résultat invisiblement, ce qui explique pourquoi vous voyez que si vous demandez spécifiquement pour l'imprimer. La valeur retournée est invisible en raison de la cession de la dernière ligne. Parce que ce ne sont pas vraiment pratique, vous pouvez déposer l'affectation dans la dernière ligne et de modifier le code de fonction de ce qui suit:

addPercent lt; - la fonction (x) {pour cent lt; - round (x * 100, chiffres = 1) de pâte (pour cent, "%", SEP = "")}

Cette fonction fonctionne à nouveau comme avant. Il peut ressembler retourner () est tout à fait inutile, mais vous avez vraiment besoin si vous voulez quitter la fonction avant la fin du code dans le corps. Par exemple, vous pouvez ajouter une ligne à la addPercent fonction qui vérifie si x est numérique, et si non, les retours NUL, comme ça:

addPercent lt; - (! is.numeric (x)) fonction (x) {if retour (NULL) pour cent lt; - round (x * 100, chiffres = 1) de pâte (pour cent, "%", SEP = "")}

Cassez les murs

Les accolades, {}, former le mur proverbiale autour de la fonction, mais dans certains cas, vous pouvez les déposer ainsi. Supposons que vous voulez calculer la probabilité d'une proportion. Les chances de quelque chose qui se passe est pas plus que la chance il arrive divisée par la chance, il ne se produit pas. Ainsi, pour calculer les chances, vous pouvez écrire une fonction comme ceci:

> Cotes lt; - la fonction (x) x / (1-x)

Même sans les accolades ou retourner () déclaration, cela fonctionne parfaitement bien, comme vous pouvez le voir dans l'exemple suivant:

> Cotes (0,8) [1] 4

Si une fonction compose d'une seule ligne de code, vous pouvez simplement ajouter cette ligne après la liste des arguments sans entre accolades. R va voir le code après la liste d'arguments que le corps de la fonction.

Vous pourriez faire la même chose avec le addPercent () fonction par emboîtement tout comme ceci:

> AddPercent lt; - la fonction (x) de pâte (round (x * 100, chiffres = 1), "%", SEP = "")

Voilà un plan astucieux pour donner la prochaine personne qui lit ce code un véritable casse-tête. Il est un peu moins d'un plan astucieux si cette personne suivante est que vous, cependant, et les chances sont, il sera.

Économiser de l'espace dans un corps de la fonction est beaucoup moins important que de garder le code lisible, économiser de l'espace parce que vous ne gagne rien. Les constructions telles que la cote fonction ne sont utiles que dans des cas très spécifiques.


» » » » Comment réduire le nombre de lignes de r