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 :

Nom de dataframe en dur et nom .. logique ?


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    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
    Par défaut Nom de dataframe en dur et nom .. logique ?
    Bonjour,
    Le titre de ma discussion n'est peut-être pas très clair, ni très juste
    Voici mon problème.
    Pour charger un dataframe (créé par quelqu'un d'autre), j'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    load("mon_dataframe.RData")
    Tout se passe correctement ... au détail près que la table récupérée porte un autre nom ("logique" ??), utilisé par R.
    Je voudrais savoir s'il y a moyen de dire à R d'utiliser uniquement le nom en dur de la table ?
    Merci !

  2. #2
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Format Rda
    Bonjour,

    Le format Rda permet enregistrer un ou plusieurs objets et le nom ne correspond donc pas forcément au nom de l'objet enregistré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    > a <- 1
    > df <- data.frame()
    > save(a, df, file="D:/temp/test.Rda")
    > rm(list = ls())
    > ls()
    character(0)
    > load("D:/temp/test.Rda")
    > ls()
    [1] "a"  "df"
    Cordialement,

  3. #3
    Membre confirmé
    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
    Par défaut
    Merci !
    ... et, donc, pas moyen de récupérer le nom du fichier par un code du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom_de_mon_df <- nom_du_fichier_sauvegarde
    ?

  4. #4
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Format Rda
    Je ne suis pas sure de comprendre votre question.

    Si vous nettoyez votre espace de travail avec la fonction rm(list = ls()), vous pouvez récupérer le nom du ou des objets enregistrés avec la fonction ls().

    Cordialement,

  5. #5
    Membre confirmé
    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
    Par défaut
    En fait, je souhaiterais conserver mon espace de travail.
    Je penserais plutôt à récupérer le dernier élément de la liste du ls() (mais je ne sais pas comment ça se fait ...), une fois le dataframe téléchargé,puis d'en faire une copie dans un nouveau DF dont je maitriserais le nom !!

  6. #6
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Dernier dernier élément d'une liste
    Notez que la fonction ls() renvoie la liste des objets par ordre alphabétique par défaut. Vous pouvez tester l'option sorted=FALSE mais l'ordre sera certainement aléatoire.

    Pour accéder au dernier élément de la liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls(sorted=FALSE)[length(ls())]
    Pour accéder à l'objet correspondant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    get(ls(sorted=FALSE)[length(ls())])
    Cordialement,

  7. #7
    Membre confirmé
    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
    Par défaut
    Le résultat n'est effectivement pas trié dans l'ordre alphabétique avec "sorted = FALSE", mais l'ordre obtenu de cette manière n'est pas non plus celui de la date de création des objets

  8. #8
    Membre confirmé
    Femme Profil pro
    Chef d'entreprise
    Inscrit en
    Juin 2020
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef d'entreprise

    Informations forums :
    Inscription : Juin 2020
    Messages : 27
    Par défaut
    Bonjour,

    Pour maîtriser le nom de l'objet de type Rdata ou Rds à importer, des fonctions de read et write sont à privilégier à load() et save() (qui polluent l'environnement de travail sans pouvoir en contrôler le nom et le contenu):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    un_objet <- 1
     
    saveRDS(object = un_objet, file = "un_objet.Rdata")
     
    un_autre_objet <- readRDS("un_objet.Rdata")

  9. #9
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Fonctions readRDS et writeRDS
    Merci beaucoup, je prends note

Discussions similaires

  1. Restauration et noms logiques des fichiers
    Par elsuket dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 11/10/2007, 15h27
  2. Liste des bases et noms logiques de fichiers
    Par usf70 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 09/01/2007, 09h54
  3. [SQL SERVER 2000]Changer le nom logique d'un base
    Par Mouse dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/12/2006, 14h48
  4. Afficher le nom logique des cartes réseaux en VB?
    Par unarcher dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 20/10/2005, 17h56
  5. [VB][Systeme]Cconnaitre le Nom logique d'un périphérique ?
    Par ShutleX20 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 12/10/2005, 12h55

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