• analyse-de-donnes-cestad
  • analytics_tools_original
  • data-minig1
  • data-minig2
  • Data-Mining-1030
  • Big-data-azzurro
  • marketing-statistics
Enquêtes
Collete des données
Traitement des données
Analyse des données
 
Programmation
Programmation statistique
Developpement des macros
Modélisation et plus encore
 
Data Mining
Exploration des données
Modélisation prédictive
Big Data
 
Formations certifiantes
Formations à la carte
Semilaires et conférences

 

 

  1. > x <- c(8,88,5,12,13)
  2. > x[2:3] <- 99:100
  3. >x
  4. [1] 8 99 100 12 13
Source code
Rappelez-vous l'exemple suivant du chapitre 2:

  1. > x <- c(1,2,4)
  2. > names(x)
  3. NULL
  4. > names(x) <- c("a","b","ab")
  5. > names(x)
  6. [1] "a" "b" "ab"
  7. >x
  8. abab
  9. 124
Source code
Considérez une ligne en particulier:

  1. > names(x) <- c("a","b","ab")
Source code
Ça a l'air totalement inoffensif, hein? Et bien non. En fait, c'est scandaleux! Comment diable pouvons-nous assigner une valeur au résultat d'un appel de fonction? La reso¬lution à cet étrange état de choses réside dans la notion R de fonctions de remplacement.
La ligne précédente de code R est en fait le résultat de l'exécution de ce qui suit:

  1. x <- "names<-"(x,value=c("a","b","ab"))
Source code
Non, ce n'est pas une faute de frappe. L'appel ici est en effet à une fonction nommée noms <- (). (Nous devons insérer les guillemets en raison des caractères spéciaux impliqués.)


Qu'est-ce qui est considéré comme une fonction de remplacement?
Toute instruction d'affectation dans laquelle le côté gauche n'est pas simplement un identifiant (c'est-à-dire un nom de variable) est considérée comme une fonction de remplacement. En rencontrant ceci:

  1. g(u) <- v
Source code
R essaiera d'exécuter ceci:

  1. u <- "g<-"(u,value=v)
Source code
Notez le "try" dans la phrase précédente. L'instruction échouera si vous n'avez pas précédemment défini g <- (). Notez que la fonction de remplacement a un argument de plus que la fonction d'origine g (), une valeur d'argument nommée, pour les raisons expliquées dans cette section.
Dans les chapitres précédents, vous avez vu cette déclaration innocente:

  1. x[3] <- 8
Source code
Le côté gauche n'est pas un nom de variable, il doit donc être une fonction de remplacement, et en effet, il est comme suit.
Les opérations d'indexation sont des fonctions. La fonction "[" () sert à lire des éléments vectoriels et "[<-" () est utilisé pour écrire. Voici un exemple:

  1. > x <- c(8,88,5,12,13)
  2. >x
  3. [1] 8 88 5 12 13
  4. > x[3]
  5. [1] 5
  6. > "["(x,3)
  7. [1] 5
  8. > x <- "[<-"(x,2:3,value=99:100)
  9. >x
  10. [1] 8 99 100 12 13
Source code
Encore une fois, cet appel compliqué dans cette ligne:

  1. > x <- "[<-"(x,2:3,value=99:100)
Source code
exécute simplement ce qui se passe dans les coulisses lorsque nous exécutons ceci:

  1. x[2:3] <- 99:100
Source code
Nous pouvons facilement vérifier ce qui se passe comme: