English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Fonctions R

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.

Définir une fonction

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().

Fonction intégrée

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

Fonction personnalisée

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

Fonction avec valeurs de paramètres

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

Fonctions de calcul paresseux

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