J'essaie de construire une fonction pour corriger des fautes de frappes éventuelles dans des données enregistrés par un opérateur (je me doute qu'il doit y avoir un package pour ça, si c'est le cas, je suis toute ouïe).
Je suis confronté à un problème que je ne comprends pas et je n'arrive pas à trouver la solution sur des forums. Ce problème doit venir de mon incompréhension de la fonction "function()".
Lorsque je prends un code simple pour modifier des variables de classe character en d'autres:
Code : Tout sélectionner
Test=c(rep("A",3),rep("B",3))
Test
Test[which(Test %in% "B")] <- "A"
Test
Pas de soucis, les "B" deviennent des "A".
Par contre, dès que j'insère ça dans une fonction:
Code : Tout sélectionner
Test=c(rep("A",3),rep("B",3))
Testouille <- function(Word,Word_List){
print(Word_List)
Word_List[which(Word_List %in% "B")] <- Word
print(Word_List)
}
Testouille("A",Test)
Test
Les instructions "print()" me permettent de confirmer que la modification a bien eu lieue sur l'objet "Word_list" mais lorsque j'exécute ma fonction la modification de l'objet "Test" n'est pas gardée en mémoire (je pensais que si l'objet est défini avant la fonction dans l'environnement global il est toujours modifié dans l'environnement global... J'ai également essayé "<<-").
Si quelqu'un peut m'exposer l'étendue de mon ignorance, j'en serais ravi.
Merci d'avance.
Mathieu.