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

Langage Perl Discussion :

Utiliser R dans perl


Sujet :

Langage Perl

  1. #1
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Points : 254
    Points
    254
    Par défaut Utiliser R dans perl
    Bonjour,
    J'utilise depuis peu R dans perl pour simplifier certains calculs.
    Je sais comment creer des objets R avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $R->send(
     qq`
     x <- 1
     y <- 2
     sum<-x+y
     \n print(sum)
     `
     );
    my $sum = $R->read;
    print $sum,"\n";
    mais si j'ai une liste @l sur laquelle je veux faire des calcul, je ne sait pas comment l'utiliser dans R
    j'ai essaye de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $R->send(
     qq`
    tab <- read.table("@l")
     x <- tab[1]
     y <- tab[2]
     sum<-x+y
     \n print(sum)
     `
     );
    my $sum = $R->read;
    print $sum,"\n";
    mais ça ne marche pas.
    Si quelqu'un à une idée de la façon de faire, merci de son aide

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 221
    Points : 207
    Points
    207
    Par défaut
    A mon avis, pour récupérer ton tableau tu devrais passer par sa référence:

  3. #3
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Points : 254
    Points
    254
    Par défaut
    Merci pour ta reponse, mais ça ne marche pas

    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
    my @tab = sort @TDC;
            $ntab = $#tab+1;
            #ouverture du pont  
            $R->startR;
            # Lecture de l'objet
            $R->send(
             qq`
             data <- read.table("\@tab")
             x <-data[1]
             y <-data[2]
             sum<-x+y
         \n print(sum)
          `
           );
           my $sum = $R->read;
           print $sum,"\n";
     
           # fermeture du pont
           $R->stopR();

  4. #4
    Rédactrice

    Avatar de stoyak
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 408
    Points : 1 491
    Points
    1 491
    Par défaut
    Je t'invite à relire la fonction read.table :

    Reads a file in table format and creates a data frame from it, with cases corresponding to lines and variables to fields in the file.
    Tu lis un fichier qui sera stocké sous la forme d'un data.frame.

    Pour faire un test sur un tableau, voici une première ébauche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    my @l = ("4","6");
     
    $R->send(
     qq`
    tab <- c($l[0],$l[1])
     x <- tab[1]
     y <- tab[2]
     sum<-x+y
     \n print(sum)
     `
     );
    my $sum = $R->read;
    print $sum,"\n";
    Cela demande du courage d'en tirer du plaisir
    Quand on n'a qu'un marteau, tous les problèmes ressemblent à un clou

  5. #5
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Points : 254
    Points
    254
    Par défaut
    j'ai utilisé la fonction read.tab pour esperer charger une liste et par ce qu'en perl je ne sais pas comment tranformer une liste en data.frame ou autre.

  6. #6
    Rédactrice

    Avatar de stoyak
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 408
    Points : 1 491
    Points
    1 491
    Par défaut
    comment penses-tu avoir accès à ton tableau en Perl ? Par une déclaration comme celle que j'ai écrite ?
    A combien évalues-tu le nombre d'éléments de ton tableau ?

    En fait, la question se pose davantage du côté de R que de Perl. Comment chargerais-tu tes données dans R ? La plupart du temps, on passe par la lecture d'un fichier.
    Donc une solution serait de créer un fichier temporaire à partir de ton tableau Perl. Et tu lirais ton fichier temporaire par la fonction read.table dans R.

    Une fois tes traitements terminés, tu pourras détruire le fichier temporaire. Sa création est simplifiée en Perl. Tu devrais trouver les codes adéquats dans la FAQ.
    Cela demande du courage d'en tirer du plaisir
    Quand on n'a qu'un marteau, tous les problèmes ressemblent à un clou

  7. #7
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Points : 254
    Points
    254
    Par défaut
    merci pour la réponse, et je pense que j'ai pas d'autres choix que de passer par les fichier temporaires.

  8. #8
    Rédactrice

    Avatar de stoyak
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 408
    Points : 1 491
    Points
    1 491
    Par défaut
    Si tu as ta réponse, je pense que tu devrais tagger ton post [Résolu] !
    Cela demande du courage d'en tirer du plaisir
    Quand on n'a qu'un marteau, tous les problèmes ressemblent à un clou

  9. #9
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Points : 254
    Points
    254
    Par défaut
    pas vraiment, j'ai juste apprécie l’idée et au final ça marche pas encore !!

  10. #10
    Rédactrice

    Avatar de stoyak
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 408
    Points : 1 491
    Points
    1 491
    Par défaut
    Dans ce cas, n'hésite pas à continuer de poster.

    Tu peux d'ailleurs poster tes tests de fichiers temporaires en cours !
    Cela demande du courage d'en tirer du plaisir
    Quand on n'a qu'un marteau, tous les problèmes ressemblent à un clou

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

Discussions similaires

  1. Utiliser Packit() dans Perl ?
    Par tibet_gang dans le forum Programmation et administration système
    Réponses: 3
    Dernier message: 22/07/2011, 12h02
  2. comment utiliser des scripts Perl dans des pages Html?
    Par mahmoudelect dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 16/03/2010, 14h11
  3. Utilisation d'une variable dans .perl
    Par cricri77200 dans le forum Langage
    Réponses: 0
    Dernier message: 29/05/2009, 08h48
  4. Réponses: 1
    Dernier message: 28/04/2004, 19h18
  5. [CR][VB6] comment utiliser CR dans VB ?
    Par kouassi_denis dans le forum SDK
    Réponses: 2
    Dernier message: 26/01/2004, 16h20

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