Bonjour
Etant étudiant en 3ème année de MIAGE, je suis actuellement stagiaire.
Mon projet est de réaliser une plate forme web avec interface R (R est un logiciel de programmation pour tout ce qui est statistique etc... pour vous donner une idée).
Pour commencer mon chef de stage m'a demandé de réaliser un script permettant de :
_ lire un fichier .csv donnée (ça j'ai réussis !), le fichier est un simple tableau a 2 colonnes représentant les coordonnées de plusieurs points
_ executer un petit programme R sur ce fichier.
Voici le programme R en question:
# Data reading:
data=read.csv(file.choose(),header=T,sep=";",dec=",") // permet de lire un fichier cherché sur le disque dur, n'affiche rien
# Model fitting:
linear.model=lm(y~x,data=data)// estime les paramètres linéaires du modèle
# Summary information:
summary(linear.model) // affiche les paramètres linéaires du modèle
/*elle affiche ceci
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:
with(data,plot(x,y)) //affiche sur une nouvelle fenêtre les points sur un graphes
abline(linear.model,col="red",lwd=2) // ajoute une droite sur le modèle représentant le modèle entièrement linéarisé.
je vous met aussi le script que j'ai écris:
<?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
}
?>
<?php
exec "exercice.R" );
?>
la première balise PHP fonctionne et me rend donc quelques chose du genre:
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...
après ça fonctionne pas ... et j'y comprend pas grand chose ...
Peut être que je me trompe de fonctions, mais pour moi exec est la plus adapté a ce genre de problème.
Après je n'ai jamais fait de R de ma vie mais apparamment je n'ai pas besoin de connaissance dedans...
J'espère avoir été le plus clair possible, si vous avez des questions n'hésitez pas.
Cordialement.
Etant étudiant en 3ème année de MIAGE, je suis actuellement stagiaire.
Mon projet est de réaliser une plate forme web avec interface R (R est un logiciel de programmation pour tout ce qui est statistique etc... pour vous donner une idée).
Pour commencer mon chef de stage m'a demandé de réaliser un script permettant de :
_ lire un fichier .csv donnée (ça j'ai réussis !), le fichier est un simple tableau a 2 colonnes représentant les coordonnées de plusieurs points
_ executer un petit programme R sur ce fichier.
Voici le programme R en question:
# Data reading:
data=read.csv(file.choose(),header=T,sep=";",dec=",") // permet de lire un fichier cherché sur le disque dur, n'affiche rien
# Model fitting:
linear.model=lm(y~x,data=data)// estime les paramètres linéaires du modèle
# Summary information:
summary(linear.model) // affiche les paramètres linéaires du modèle
/*elle affiche ceci
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:
with(data,plot(x,y)) //affiche sur une nouvelle fenêtre les points sur un graphes
abline(linear.model,col="red",lwd=2) // ajoute une droite sur le modèle représentant le modèle entièrement linéarisé.
je vous met aussi le script que j'ai écris:
<?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
}
?>
<?php
exec "exercice.R" );
?>
la première balise PHP fonctionne et me rend donc quelques chose du genre:
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...
après ça fonctionne pas ... et j'y comprend pas grand chose ...
Peut être que je me trompe de fonctions, mais pour moi exec est la plus adapté a ce genre de problème.
Après je n'ai jamais fait de R de ma vie mais apparamment je n'ai pas besoin de connaissance dedans...
J'espère avoir été le plus clair possible, si vous avez des questions n'hésitez pas.
Cordialement.