Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

La fonction apply() est absolument l’une des capacités les plus précieuses. J’en ai eu peur pendant un certain temps et je ne voulais pas l’utiliser. Cependant, elle rend le code tellement plus rapide à composer et si efficace que nous ne pouvons pas supporter le coût de ne pas l’utiliser. Au cas où vous me ressembleriez, que vous n’utiliseriez pas, postulez au motif que c’est alarmant, lisez les lignes d’accompagnement, cela vous aidera. Vous devez réaliser comment utiliser apply() quand tout est fait, avec une capacité maison ou avec quelques paramètres ? A ce stade, allez voir les modèles d’accompagnement.

La fonction apply() est connue pour être incroyablement utile pour améliorer la vitesse de notre code lorsque nous devons travailler quelques capacités sur un réseau ou un vecteur. Je l’utilise, mais je n’ai généralement pas la moindre idée de la façon de l’utiliser.

Que se passe-t-il ici ?

apply() est un travail R qui permet d’effectuer des tâches rapides sur un treillis, un vecteur ou une exposition. Les tâches doivent être possibles sur les lignes, les segments ou même les deux.

Comment cela peut-il fonctionner ?

L’exemple est extrêmement simple : appliquer (variable, bord, travail).

– la variable est la variable à laquelle vous devez appliquer la capacité.

– edge détermine au hasard que vous devez appliquer par poussée (edge = 1), par segment (edge = 2), ou pour chaque composant (edge = 1:2). L’arête peut être beaucoup plus remarquable que 2, si par hasard nous travaillons avec des facteurs de mesure plus importants que deux.

– Le travail est la capacité que vous devez appliquer aux composantes de votre variable.

Comme je pense que le modèle est plus clair que tout le reste, voici le guide le plus significatif pour comprendre la capacité à appliquer()

Introduction :

#la matrice sur laquelle nous allons travailler :

a = matrice (c(1:15), nrow = 5 , ncol = 3)


# appliquera la moyenne de la fonction à tous les éléments de chaque rowapply
(a, 1, moyenne)
# [1] 6 7 8 9 10

# appliquera la moyenne de la fonction à tous les éléments de chaque colonne
appliquer(a, 2, moyenne)
# [1] 3 8 13

#appliquera la moyenne de la fonction à tous les éléments de chaque colonne et de chaque ligne, c’est-à-dire que chaque élément s’applique
 (a, 1:2, moyenne)# [,1]
 [,2] [,3]
# [1,] 1 6 11# [
2,] 2 7 12# [3,]
 3 8 13# [
4,] 4 9 14# [
5,] 5 10 15

Nous avons récemment fait un tour d’horizon des différents aspects pour montrer les résultats fondamentaux envisageables. Quoi qu’il en soit, comme je l’ai dit, nous pouvons également nous pencher sur différents facteurs, par exemple, une variété de mesures 3 :

#apply() for array of other dimension :
a = array(1:8, dim = c(2,2,2))
apply(a, 3, sum)

# , , 1##    
  [,1] [,2]
# [1,]    1    3# [2,]    2
    4## ,
 , 2##      
 [,1] [,2]# [1,]
    5    7# [2,]
    6    8

Utilisez une fonction faite maison :

Nous pouvons également utiliser notre propre fonction. Par exemple, nous reproduisons la fonction somme (absolument inutile mais restons simples !).

f1 = function(x){
 return(sum(x))}apply
(a, 1, f1)

La fonction apply() est certainement l’une des plus utiles. J’en ai eu peur pendant un certain temps et j’ai refusé de l’utiliser. Mais elle rend le code tellement plus rapide à écrire et tellement efficace que nous ne pouvons pas nous permettre de ne pas l’utiliser. Si vous êtes comme moi, que vous refusez d’utiliser apply parce qu’elle fait peur, lisez les lignes suivantes, elle vous aidera. Vous voulez savoir comment utiliser apply() en général, avec une fonction maison ou avec plusieurs paramètres ? Alors, allez voir les exemples suivants.



La fonction apply() est connue pour être extrêmement utile pour améliorer la vitesse de notre code lorsque nous voulons exploiter certaines fonctions sur une matrice ou un vecteur. Je l’utilise, mais je ne sais pas vraiment comment m’en servir.

Qu’est-ce que c’est ?

apply() est une fonction R qui permet d’effectuer des opérations rapides sur une matrice, un vecteur ou un tableau. Les opérations peuvent être effectuées sur les lignes, les colonnes ou même les deux.

Comment cela fonctionne-t-il ?

Le modèle est très simple : appliquer (variable, marge, fonction).
-variable est la variable à laquelle vous voulez appliquer la fonction.
-margin indique si vous voulez appliquer par ligne (marge = 1), par colonne (marge = 2), ou pour chaque élément (marge = 1:2). La marge peut même être supérieure à 2, si l’on travaille avec des variables de dimension supérieure à deux.
-fonction est la fonction que vous voulez appliquer aux éléments de votre variable.

Parce que je pense que l’exemple est plus clair que toute autre chose, voici l’exemple le plus important pour comprendre la fonction apply().

Introduction :

#la matrice sur laquelle nous allons travailler :

a = matrice (c(1:15), nrow = 5 , ncol = 3)


# appliquera la moyenne de la fonction à tous les éléments de chaque rowapply
(a, 1, moyenne)
# [1] 6 7 8 9 10

# appliquera la fonction moyenne à tous les éléments de chaque colonneappliquer
(a, 2, moyenne)
# [1] 3 8 13

#appliquera la moyenne de la fonction à tous les éléments de chaque colonne et de chaque ligne, c’est-à-dire que chaque élément s’applique
 (a, 1:2, moyenne)# [,1]
 [,2] [,3]
# [1,] 1 6 11# [
2,] 2 7 12# [3,]
 3 8 13# [
4,] 4 9 14# [
5,] 5 10 15

Nous avons juste travaillé sur les différentes marges pour montrer les possibilités de base. Mais comme je l’ai dit, nous pouvons aussi travailler sur d’autres variables, comme un tableau de la dimension 3 :

#apply() for array of other dimension :
a = array(1:8, dim = c(2,2,2))
apply(a, 3, sum)

# , , 1##    
  [,1] [,2]
# [1,]    1    3# [2,]    2
    4## ,
 , 2##      
 [,1] [,2]# [1,]
    5    7# [2,]
    6    8

Quelques paramètres :

Capacité avec quelques paramètres. Voici la principale raison pour laquelle je n’ai jamais utilisé apply(), je n’avais pas la moindre idée de ce qu’il fallait faire lorsque j’avais quelques paramètres dans une capacité. C’est très simple, il suffit de spécifier dans le paramètre la variable qui est cohérente.

Utilisez une fonction faite maison :

Nous pouvons également utiliser notre propre fonction. Par exemple, nous reproduisons la fonction somme (absolument inutile mais restons simples !).

f1 = function(x){
 return(sum(x))
}

s’appliquent(a, 1, f1)

Plusieurs paramètres :
 une fonction avec plusieurs paramètres. Voici la principale raison pour laquelle je n’ai jamais utilisé apply(), je ne savais pas comment faire quand j’avais plusieurs paramètres dans une fonction. C’est assez simple, il suffit de spécifier dans le paramètre la variable qui est constante.

f2 = fonction(x1,x2){
 x1-x2}b
 = 2

# avec le deuxième paramètre en optionappliquer
(a,1,f2,x2=b)

#       [,1] [,2] [,3] [,4] [,5]
# [1,]   -1    0    1    2    3#
 [2,]    4    5    6    7    8# [3,]
    9   10   11   12   13# [3,]
   22   24   26   28   30

#avec le premier paramètre en optionappliquer
(a,1,f2,x1=b)

# [,1] [,2] [,3] [,4] [,5]
# [1,]    1    0   -1   -2   -3#
 [2,]   -4   -5   -6   -7   -8# [
3,]   -9  -10  -11  -12  -13

J’espère que ces modèles vous soutiendront. J’utilise la capacité d’appliquer () depuis que j’ai fait l’expérience de ces deux modèles. Il est évident que de nombreuses subtilités différentes peuvent être utiles, cependant, ces premiers modèles gèrent les principaux résultats utiles imaginables de apply().

Langages

Weekly newsletter

No spam. Just the latest releases and tips, interesting articles, and exclusive interviews in your inbox every week.