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 :

Créer une fonction qui remplace un data.frame


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 6
    Par défaut Créer une fonction qui remplace un data.frame
    Bonjour,
    Je suis en train de créer un fonction qui est sensée éditer un data.frame à partir de de ses résultat.
    Ce data.frame doit porter le même nom que celui qui est digéré par la fonction. Je veux le remplacer.
    Comment est-ce que je peut coder ça?
    Merci d'avance!
    Cordialement,
    Théo G

  2. #2
    Membre expérimenté
    Homme Profil pro
    Data scientist
    Inscrit en
    Février 2017
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data scientist
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2017
    Messages : 211
    Par défaut
    Bonjour,

    Pourriez-vous donner des exemples ou plus d'explications s'il vous plait ?

  3. #3
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 276
    Par défaut
    Bonjour,

    toujours cette idée de fonction qui remplace un objet, à mon avis c'est dangereux comme façon de programmer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    fun <- function(df) {
      x <- deparse(substitute(df))
      y <- scale(df)
      env1 <- parent.frame()
      assign(x, y, envir = env1)
    }
     
     
    df1 <- data.frame(x = 1:5, y = rnorm(5), z = rpois(5, 1.8))
    scale(df1)
                  x          y          z
    [1,] -1.2649111  0.3613575  1.2278812
    [2,] -0.6324555  1.0060798 -0.5262348
    [3,]  0.0000000 -1.1344912  0.3508232
    [4,]  0.6324555 -0.9948300 -1.4032928
    [5,]  1.2649111  0.7618839  0.3508232
    attr(,"scaled:center")
           x        y        z 
    3.000000 0.476867 2.600000 
    attr(,"scaled:scale")
            x         y         z 
    1.5811388 0.5066093 1.1401754 
     
    fun(df1)
    # après transformation :
    df1
                  x          y          z
    [1,] -1.2649111  0.3613575  1.2278812
    [2,] -0.6324555  1.0060798 -0.5262348
    [3,]  0.0000000 -1.1344912  0.3508232
    [4,]  0.6324555 -0.9948300 -1.4032928
    [5,]  1.2649111  0.7618839  0.3508232
    attr(,"scaled:center")
           x        y        z 
    3.000000 0.476867 2.600000 
    attr(,"scaled:scale")
            x         y         z 
    1.5811388 0.5066093 1.1401754
    cdlt

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 6
    Par défaut
    Merci pour la mise en garde!
    Donc par contre, si je veux faire sortir un nouveau data.frame, comment m'y prend-je ?
    Par exemple sur l'exemple que vous m'avez proposé ci-dessus.
    Crdt,
    Théo

  5. #5
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 276
    Par défaut
    re,

    directement en sortie de ta fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    fun <- function(df) { # contient toutes les opérations de transformation souhaitee
      # pour l'exemple
      y <- scale(df)
      y
    }
    df2 <- fun(df1)
    Ici tu gagnes en lisibilité, tu as une fonction qui fait des opérations, tu l'appliques sur un tableau donné et tu stockes le résultat dans le tableau à gauche de la flèche.

    cdlt

Discussions similaires

  1. probléme dans une fonction qui retourne un data reader
    Par saraenim dans le forum Windows Forms
    Réponses: 32
    Dernier message: 28/04/2008, 21h53
  2. Créer une fonction qui retourne un booléen
    Par Dereck07 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/02/2008, 23h22
  3. Réponses: 2
    Dernier message: 22/10/2007, 17h50
  4. Comment créer une fonction qui retourne un tableau?
    Par Dereck07 dans le forum Delphi
    Réponses: 4
    Dernier message: 26/04/2007, 13h16
  5. [MySQL] Créer une fonction qui récupère un enregistrement
    Par azahord dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 10/11/2006, 20h13

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