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 :

récupérer le nom d'une dataframe


Sujet :

R

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut récupérer le nom d'une dataframe
    Bonjour,
    Je souhaiterais effectuer un traitement sur une dataframe à l'intérieur d'une fonction.

    Ce traitement dépend de la table qui est passée en argument de la fonction.

    Aussi, je souhaiterais récupérer le nom de la table. Quelque chose "de ce genre" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ma_fonc <- function(table) {
      if name(table)=="toto" {
         # traitement 1
      }
      else {
         # traitement 2
      }
    }
    Merci pour votre aide !

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut nom dataframe
    Bonjour,

    Vous pouvez utiliser la fonction deparse(substitute()) pour tester le nom du dataframe (voir ici).

    Par ailleurs, il ne faut pas oublier les parenthèses après le if.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    df1 <- data.frame(a = c(1,1,1))
    df2 <- data.frame(a = c(2,2,2))
     
    ma_func <- function(table) {
      if (deparse(substitute(table)) == "df1") {
         print(table)
      }
      else {
         print(deparse(substitute(table)))
      }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    > ma_func(df1)
      a
    1 1
    2 1
    3 1
    > ma_func(df2)
    [1] "df2"
    Cordialement,

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut
    Merci bien !
    Pas simple, R !

  4. #4
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Philosophie
    Bonjour,

    Citation Envoyé par jlp65 Voir le message
    Le passage de SAS à R n'est pas toujours évident, notamment lorsqu'il s'agit de paramétrer le code.
    La philosophie des 2 logiciels est en effet complètement différente. Je vous propose des solutions pour mimer le fonctionnement de SAS mais je suppose que les vrais utilisateurs R utilisent d'autre méthodes de programmation. C'est comme pour une langue étrangère, il faudrait réussir à penser directement R.

    Cordialement,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/07/2019, 17h38
  2. Réponses: 3
    Dernier message: 03/02/2012, 10h50
  3. [javascript]Récupérer le nom d'une image
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/10/2005, 13h56
  4. [Debutant] Récupérer le nom d'une image
    Par Djoul dans le forum Débuter
    Réponses: 4
    Dernier message: 30/05/2005, 09h52
  5. Récupérer le nom d'une base
    Par nic_moq dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 24/03/2004, 10h50

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