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 :

Mission impossible : qui veut (peut) relever le defi?


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 35
    Par défaut Mission impossible : qui veut (peut) relever le defi?
    Bonjour,

    Je réitère ma question, qui semble-t-il n'est pas si triviale que ça...

    Mon problème est donc que je veux faire lire par R un path codé en windows (du type : "D:/Mondossier/mes fichiers"). Or R lit les path de cette facon : "D:\Mondossier\mes fichiers" ou encore "D:\\Mondossier\\mes fichiers".
    La difference vient donc du "/" transformé en "\" .

    L'idée est de remplacer la chaine de caractères "D:/Mondossier/mes fichiers" par "D:\Mondossier\mes fichiers". Cependant, les fonctions de remplacement de caractères, comme sub() ou gsub(), ne s'appliquent pas au caractère special "/".

    S'il existe une solution, comment contourner ce problème ?

    Merci a tous pour votre contribution.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2013
    Messages : 75
    Par défaut
    Un exemple reproductible serait le minimum

  3. #3
    Membre chevronné
    Homme Profil pro
    MCU
    Inscrit en
    Juillet 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : MCU
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 185
    Par défaut
    Bonjour,

    Vous devriez pouvoir utiliser les slashes sous windows.

    http://cran.r-project.org/bin/window...t-find-my-file

    " You can make life easier for yourself by using forward slashes as path separators: they do work under Windows."

    HTH

    Vincent

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 35
    Par défaut
    Merci pour la doc mais je ne vois pas exactement ou vous voulez en venir. Est-ce que cela veut dire que je dois transformer le systeme de path dans Windows ? Si oui comment proceder?

    D'ailleurs je me suis rendu compte qu'il y a une erreur dans mon premier message : R lit les path en slash forward / ou // et Windows les lit en bakslash \, et non l'inverse.

    Enfin, je ne vois toujours pas comment resoudre mon probleme. Pour etre explicite, voici un exemple de ce que je veux faire :

    Imaginons que je veuille faire une fonction qui lit les premieres lignes d'un fichier, en indiquant en argument de la fonction le chemin d'acces de mon fichier (le path). C'est evidement une fonction a la con...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FonctionBidon <- function(path)      
    {head(read.table(path))   ## renvoie les premieres ligne du fichier 
    }
    Cette fonction ne marchera que si l'argument d'entrée path est :
    "D:/Dossier/fichier.txt". Or je voudrais que lorsque l'on rentre en arguments un path codé Windows ie "D:\Dossier\fichier.txt"

    Que faire?

  5. #5
    Membre chevronné
    Homme Profil pro
    MCU
    Inscrit en
    Juillet 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : MCU
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 185
    Par défaut
    Bonjour,

    Citation Envoyé par remissssss Voir le message
    je ne vois pas exactement ou vous voulez en venir
    Nous voila deux dans le meme bateau

    Pour quelle raison tenez vous absolument a utiliser "C:\blabla\fichier.txt"? Vous interfacez R avec autre chose? Sous Windows, sauf erreur de ma part, c'est soit "C:/blabla/fichier.txt", soit "C:\\blabla\\fichier.txt".

    Un exemple (sous linux ) : je cree un script test.R qui contient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    test <- commandArgs(trailingOnly = TRUE)
    print(test)
    Quelques tests dans un terminal:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ Rscript test.R C:\toto\fichier.txt
    [1] "C:totofichier.txt"
    $ Rscript test.R C:\\toto\\fichier.txt
    [1] "C:\\toto\\fichier.txt"
    $ Rscript test.R "C:\toto\fichier.txt"
    [1] "C:\\toto\\fichier.txt"
    Vincent

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 35
    Par défaut
    Alors pour résumer, j'ai créé une fonction qui prends en argument le path d'un fichier pour effectuer des operations sur ce fichier : fonction("path").
    jusque la tout va bien.

    J'aimerais simplement, que lorsqu'un utilisateur lambda utilise cette fonction, il n'ai qu'a faire un simple copier coller du path de son fichier a analyser.

    Or sous Windows, quand on copie un path, c'est "D:\truc\bidule.exe" qui est en memoire. Donc, si l'utilisateur de ma fonction tape ceci dans R : "fonction(D:\truc\bidule.exe)", ca ne marchera pas.
    Par contre s'il tape "fonction(D:/truc/bidule.exe)", le script fonctionnera.

    Ma quesion peut revenir finalement à : Comment, sous windows, obtenir facilement et rapidement un path en "D:/truc/bidule.exe" pour pouvoir coller cette chaine de caractere directement sur R.

    C'est juste une question de confort pour l'utilisation de ma fonction. Pas d'interfacage entre R et autre chose ici, juste des creations de dossiers et fichiers fonction du path entré en argument.


    En esperant que tu n'aies pas encore quitté le navire !
    Merci

Discussions similaires

  1. java web start qui veut pas se lancer
    Par calvin dans le forum JWS
    Réponses: 4
    Dernier message: 30/06/2004, 12h42
  2. Réponses: 2
    Dernier message: 10/03/2004, 19h52
  3. Créer une fenêtre flottante qui ne peut avoir le focus
    Par BestofMac dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 11h46

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