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 PHP Discussion :

Plateforme Web avec interface R


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    ISTIC, Rennes1
    Inscrit en
    Janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : ISTIC, Rennes1
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Plateforme Web avec interface R
    Bonjour à tous et à toutes.
    Je suis étudiant en L3 MIAGE et je suis actuellement stagiaire.
    Mon sujet de stage est de créer une plateforme web incluant une interface R.
    Pour débuter ce stage mon maître de stage m'a confié un petit exercice consistant à:

    1/ Lire un fichier .csv avec PHP (ça j'ai réussis bien que mon code soit légèrement moche ^^)

    2/ C'est là que je commence à désespéré et m'énerver car ça fait environ 5 jours que j'essaye sans succès.

    Mon maître de stage m'a donnée un petit programme R que voici (je n'ai normalement pas besoin de connaissances en R pour résoudre ce petit exercice):

    exercice.R:

    # Data reading:
    data=read.csv(file.choose(),header=T,sep=";",dec=",")
    [COLOR]// permet d'aller chercher un fichier .csv dans le disque dur, ne l'affiche pas.[/COLOR]

    # Model fitting:
    linear.model=lm(y~x,data=data)
    [COLOR]//estime les paramètres selon un modèle linéaire, n'affiche rien.[/COLOR]

    # Summary information:
    summary(linear.model)
    [COLOR]//affiche les paramètres linéaire du modèle estimer
    /* ça affiche tout ça:[/COLOR]
    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
    Call:
    lm(formula = y ~ x, data = data)
     
    Residuals:
           Min         1Q     Median         3Q        Max 
    -0.0131191 -0.0025067  0.0000646  0.0016565  0.0116565 
     
    Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
    (Intercept) 2.004048   0.004196   477.6  < 2e-16 ***
    x           2.986734   0.008813   338.9 5.14e-16 ***
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
     
    Residual standard error: 0.007264 on 7 degrees of freedom
    Multiple R-squared: 0.9999,     Adjusted R-squared: 0.9999 
    F-statistic: 1.148e+05 on 1 and 7 DF,  p-value: 5.144e-16 
    */
    # Graphic:
    [COLOR]with(data,plot(x,y))[/COLOR]
    [COLOR]//affiche un graphe avec les coordonnées des différents points de mon tableau[/COLOR]

    [COLOR]abline(linear.model,col="red",lwd=2)[/COLOR]
    [COLOR]//ajoute une droite sur mon graphe représentant la linéarisation de mon modèle[/COLOR]

    Je vous met le fichier .csv que j'ai:

    data_xy.csv:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    x;y
    0,21;2,63
    0,79;4,36
    0,38;3,14
    0,43;3,3
    0,87;4,6
    0,01;2,04
    0,07;2,2
    0,43;3,29
    0,31;2,93
    je vous met aussi mes scripts PHP:

    exerciceR.php:

    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
    <?php
    $row = 1; // variable indiquant le numéro de la ligne traitée
    if (($handle = fopen("data_xy.csv", "r+")) !== FALSE) {// si le fichier existe, traitement, sinon stop!
        while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {// tant que l'on n'est pas arrivée à la fin du fichier
            $num = count($data);// nombre de variable sur la ligne row
            echo "$num champs à la ligne $row:<br />";
            $row++;//on passe à la ligne suivante
            for ($c=0; $c < $num; $c++) {// tant qu'on a pas atteint la dernière variable de la ligne row
                echo $data[$c] . "<br />";
            }
        }
        fclose($handle);// fermeture du fichier
    }
     
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    // tentative 1 pour executer le programme R
    system('""C:\Program Files\R\R-2.14.1\bin\i386\Rgui.exe"" -q --vanilla < "C:\wamp\www\test\exercice.R"'); 
    ?>
    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
     
    <?
    $out = array();//tentative proposé par un amis
     
     
     
    exec("\"C:\Program Files\R\R-2.14.1\bin\i386\Rgui.exe\" -q --vanilla < C:\wamp\www\test\exercice.R", $out);
     
     
     
    foreach($out as $key => $value) {
     
    echo $value;
     
    }
    ?>
    je vous met accessoirement ce que cela m'affiche pour le moment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    2 champs à la ligne 1:
    x
    y
    2 champs à la ligne 2:
    0,21
    2,63
    2 champs à la ligne 3:
    0,79
    4,36
    2 champs à la ligne 4:
    0,38
    3,14
    etc...
    // l'affichage est bon pour le fichier .csv
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $value) { echo $value; } ?>
    // puis ben ça ... c'est le problème majeur que j'ai, soit mes scripts affiche rien ou alors ici ben juste ça ...

    En informations complémentaires, je tourne sous windows 7 et je tests mes scripts avec WampServer. Je ne suis pas vraiment un expert en PHP donc excusez mon code "moche".

    J'ai essayer les fonctions exec/passthru/system après peut être d'une mauvaise façon. J'espère que vous serez en mesure de m'aider car je désespère totalement et sans ça je peux pas avancer dans mon stage.

  2. #2
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    à cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php $out = array();//tentative proposé par un amis
    t'as oublié le 'php' et si ton serveur n'autorise pas les short tag le code n'est pas interprété mais affiché...
    R c'est en décisionnel que vous faite ça ? (j'aime pas ce langage...)

  3. #3
    Candidat au Club
    Homme Profil pro
    ISTIC, Rennes1
    Inscrit en
    Janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : ISTIC, Rennes1
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    j'ai modifié mon code R:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data=read.csv(file.choose(),header=T,sep=";",dec=",")
    est devenu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data=read.csv("C:/wamp/www/test/data_xy.csv",header=T,sep=";",dec=",")
    R n'aime pas les anti-slashs apparamment.

    sinon j'ai modifié légèrement mon code PHP (3 versions différentes que l'on m'a proposé qui ne fonctionne pas malheuresement) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    system('"C:\Program Files\R\R-2.14.1\bin\R.exe" -q --vanilla < "C:\wamp\www\test\exercice.R"'); 
    ?>
    il n'affiche toujours rien celui là...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    passthru('"C:\Program Files\R\R-2.14.1\bin\R.exe" -q --vanilla < "C:\wamp\www\test\exercice.R"'); 
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $out = array();
    exec('"C:\Program Files\R\R-2.14.1\bin\R.exe" -q --vanilla < C:\wamp\www\test\exercice.R', $out);
    foreach($out as $key => $value) {
    echo $value;
    }
    ?>
    ces deux là m'affiche exactement la même chose ...

    >> # Data reading:> data=read.csv("C:/wamp/www/test/data_xy.csv",header=T,sep=";",dec=",")>>> # Model fitting:> linear.model=lm(y~x,data=data)>> # Summary information:> summary(linear.model)Call:lm(formula = y ~ x, data = data)Residuals: Min 1Q Median 3Q Max-0.0131191 -0.0025067 0.0000646 0.0016565 0.0116565Coefficients: Estimate Std. Error t value Pr(>|t|)(Intercept) 2.004048 0.004196 477.6 < 2e-16 ***x 2.986734 0.008813 338.9 5.14e-16 ***---Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1Residual standard error: 0.007264 on 7 degrees of freedomMultiple R-squared: 0.9999, Adjusted R-squared: 0.9999F-statistic: 1.148e+05 on 1 and 7 DF, p-value: 5.144e-16>> # Graphic:> with(data,plot(x,y))> abline(linear.model,col="red",lwd=2)>>
    cependant seule ce qui est en rouge m'intéresse
    et il me manque l'affichage du graphe avec nuage de points et droite rouge représentant la linéarisation du modèle.

    edit: En faite je n'avais pas vue, mon graphe est bien créer en format PDF mais ce que je souhaite c'est l'afficher sur ma page web

    Sinon je n'ai pas bien compris ta question vorace , R en décisionnel ?

Discussions similaires

  1. [MySQL] application web avec interface d'administration
    Par didier.dev dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 13/03/2015, 08h07
  2. Réponses: 1
    Dernier message: 02/12/2010, 23h26
  3. Réponses: 1
    Dernier message: 10/10/2007, 16h18
  4. interface web avec oracle
    Par killer_instinct dans le forum Oracle
    Réponses: 5
    Dernier message: 11/02/2007, 19h36

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