English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Une fonction est un ensemble d'instructions exécutées ensemble pour accomplir une tâche. R langage fournit de nombreuses fonctions intégrées, bien sûr, nous pouvons également créer des fonctions nous-mêmes.
Vous pouvez diviser le code en différentes fonctions. Comment diviser le code en différentes fonctions est à votre discrétion, mais dans le domaine logique, la division est généralement basée sur l'exécution d'une tâche spécifique par chaque fonction. Fonction
FonctionDéclarationIndique au compilateur le nom de la fonction, le type de retour et les paramètres. FonctionDéfinirFournit le corps réel de la fonction.
Les fonctions en R langage sont des objets qui peuvent posséder des attributs.
La définition des fonctions en R langage utilise la clé function, généralement sous la forme suivante :
function_name <- function(arg_1, arg_2, ...) { // Corps de la fonction }
Remarque :
function_name : nom de la fonction
arg_1, arg_2, ... : liste des paramètres formels
La valeur de retour de la fonction utilise return().
R langage fournit de nombreuses fonctions intégrées utiles, nous n'avons pas besoin de les définir pour les utiliser directement.
Par exemple : seq(), mean(), max(), sum(x) et paste(...) etc.
# Sortie 32 à 44 tous les nombres print(seq(32,44)) # Calculer la moyenne de deux nombres print(mean(25:82)) # Calculer 41 à 68 La somme de tous les nombres print(sum(41:68))
Exécuter le code suivant, le résultat est :
[1] 32 33 34 35 36 37 38 39 40 41 42 43 44 [1] 53.5 [1] 1526
Nous pouvons créer nous-mêmes des fonctions pour des fonctionnalités spécifiques, une fois définies, nous pouvons les utiliser comme les fonctions intégrées.
Voici comment définir une fonction personnalisée :
# Définir une fonction pour compter une série jusqu'à la valeur au carré new.function <- function(a) { for(i in 1:a) { b <- i^2 print(b) } }
Ensuite, nous pouvons appeler la fonction :
new.function <- function(a) { for(i in 1:a) { b <- i^2 print(b) } } # Appeler la fonction et passer des paramètres new.function(6)
Exécuter le code suivant, le résultat est :
[1] 1 [1] 4 [1] 9 [1] 16 [1] 25 [1] 36
Nous pouvons également créer une fonction sans paramètres :
new.function <- function() { for(i in 1:5) { print(i^2) } } # Appeler la fonction, sans passer de paramètres new.function()
Exécuter le code suivant, le résultat est :
[1] 1 [1] 4 [1] 9 [1] 16 [1] 25
Les paramètres de la fonction peuvent être passés dans l'ordre de création de la fonction, ou sans ordre, mais le nom des paramètres doit être spécifié :
# Créer une fonction new.function <- function(a,b,c) { result <- a * b + c print(result) } # Sans le nom du paramètre new.function(5,3,11) # Avec le nom du paramètre new.function(a = 11, b = 5, c = 3)
Exécuter le code suivant, le résultat est :
[1] 26 [1] 58
Lors de la création de la fonction, vous pouvez également attribuer des valeurs par défaut aux paramètres, si vous ne passez pas de paramètres lors de l'appel, ils utiliseront les valeurs par défaut :
# Créer une fonction avec des paramètres par défaut new.function <- function(a = 3, b = 6) { result <- a * b print(result) } # Appeler la fonction, sans transmettre de paramètres, utiliser les valeurs par défaut new.function() # Appeler la fonction, transmettre des paramètres new.function(9,5)
Exécuter le code suivant, le résultat est :
[1] 18 [1] 45
Le calcul paresseux reporte le travail de calcul jusqu'à ce que le système nécessite les résultats de ces calculs. Si les résultats ne sont pas nécessaires, le calcul ne sera pas effectué.
Par défaut, les fonctions R calculent les paramètres de manière paresseuse, c'est-à-dire qu'elles ne sont appelées que lorsque nous les calculons :
f <- function(x) { 10 } f()
Exécuter le code suivant, le résultat est :
[1] 10
L'exécution du code suivant n'a pas généré d'erreur, bien que nous n'ayons pas passé de paramètres, mais le corps de la fonction n'utilise pas le paramètre x, donc il ne sera pas appelé et il n'y aura pas d'erreur.
new.function <- function(a , b) { print(a^2) print(a) print(b) # Utilisation de b, mais non transmis, donc erreur } # Passer un paramètre new.function(6)
Exécuter le code suivant, le résultat est :
[1] 36 [1] 6 Erreur dans print(b) : manque de paramètre "b", pas de valeur par défaut Appels: new.function -> print Arrêter l'exécution