Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/01/2012, 14h12   #1
Invité de passage
 
Homme Philippe LEROY
ISTIC, Rennes1
Inscription : janvier 2012
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Philippe LEROY
Localisation : France, Ille et Vilaine (Bretagne)

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

Informations forums :
Inscription : janvier 2012
Messages : 3
Points : 0
Points : 0
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 :
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 :
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 :
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 :
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 :
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 :
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 :
$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.
belzebate est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 14h27   #2
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
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 : 587
Points : 861
Points : 861
à cette ligne :
Code :
<?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...)
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 14h14   #3
Invité de passage
 
Homme Philippe LEROY
ISTIC, Rennes1
Inscription : janvier 2012
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Philippe LEROY
Localisation : France, Ille et Vilaine (Bretagne)

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

Informations forums :
Inscription : janvier 2012
Messages : 3
Points : 0
Points : 0
j'ai modifié mon code R:

Code :
data=read.csv(file.choose(),header=T,sep=";",dec=",")
est devenu:
Code :
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 :
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 :
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 :
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 ...

Citation:
>> # 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 ?
belzebate est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h53.


 
 
 
 
Partenaires

Hébergement Web