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]
# Graphic:
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 */
[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:
je vous met aussi mes scripts PHP:
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
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"'); ?>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
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; } ?>
// l'affichage est bon pour le fichier .csv
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...
// puis ben ça ... c'est le problème majeur que j'ai, soit mes scripts affiche rien ou alors ici ben juste ça ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part $value) { echo $value; } ?>
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.
Partager