IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Modifier un data.frame par une fonction


Sujet :

R

  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2003
    Messages
    553
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 553
    Par défaut Modifier un data.frame par une fonction
    Bonjour,
    Voilà, j'ai un truc tout bête, j'essaie de modifier un data.frame avec une fonction ; et ça ne marche pas.
    Voici mon code tout simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    BDD <- data.frame(A=c(1,2,3),B=c('a','b','c'),C=c(23,NA,111))
    print(BDD)
    Fonction <- function() {  BDD$C[is.na(BDD$C)] = 0 }
    Fonction()
    print(BDD)
    Mon data.frame n'a pas bougé, alors que par rapport à la fonction, le data.frame est bien un élément extérieur, mais qui fait partie de son environnement.
    Je sèche !

    Est-ce que quelqu'un aurait une idée ?

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 489
    Par défaut
    salut enicnath,
    un coup de mou
    il faut penser au retour de la fonction et à la réaffectation dans ton dataframe initial

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    BDD <- data.frame(A=c(1,2,3),B=c('a','b','c'),C=c(23,NA,111))
    print(BDD)
    Fonction <- function() {  
      BDD$C[is.na(BDD$C)] = 0
      return(BDD)}
    BDD <- Fonction()
    print(BDD)
    bonne journée

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2003
    Messages
    553
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 553
    Par défaut
    Citation Envoyé par xavier-Pierre Voir le message
    salut enicnath,
    un coup de mou
    il faut penser au retour de la fonction et à la réaffectation dans ton dataframe initial
    ...
    Merci Xavier-Pierre, mais c'est une solution que je voulais éviter, parce qu'en réalité, mon souci concerne une table de plusieurs milliers de lignes.
    Et c'est une table que j'attaque dans une boucle, qui elle-même est longue et compliquée.
    Du coup, j'ai une boucle avec réaffectation de la table ; et c'est très consommateur de temps.
    En R de plus, il ne semble pas qu'on puisse passer une référence à un objet dans une fonction, comme l'indique ce lien

Discussions similaires

  1. [Python 3.X] débutant - Valeur de l'argument modifié par une fonction
    Par awawawa dans le forum Général Python
    Réponses: 4
    Dernier message: 14/01/2022, 12h45
  2. Réponses: 2
    Dernier message: 05/07/2019, 09h16
  3. Réponses: 11
    Dernier message: 31/10/2005, 18h59
  4. [LG]résultat renvoyé par une fonction
    Par le 27 dans le forum Langage
    Réponses: 3
    Dernier message: 10/12/2003, 11h31
  5. tableau javascript ecrit par une fonction asp
    Par LineLe dans le forum ASP
    Réponses: 4
    Dernier message: 03/11/2003, 09h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo