... outre le fait que RSCRIPT est appelé avec #!/usr/bin/env Rscript
et Littler avec #!/usr/local/bin/r
(sur mon système) en première ligne du fichier de script. J'ai trouvé certaines différences dans la vitesse d'exécution (semble littler est un peu plus lent).Différence entre RSCRIPT et Littler
J'ai créé deux scripts fictifs, exécutés tous les 1000 fois et comparé le temps d'exécution moyen.
Voici le fichier RSCRIPT:
#!/usr/bin/env Rscript
btime <- proc.time()
x <- rnorm(100)
print(x)
print(plot(x))
etime <- proc.time()
tm <- etime - btime
sink(file = "rscript.r.out", append = TRUE)
cat(paste(tm[1:3], collapse = ";"), "\n")
sink()
print(tm)
et voici le fichier Littler:
#!/usr/local/bin/r
btime <- proc.time()
x <- rnorm(100)
print(x)
print(plot(x))
etime <- proc.time()
tm <- etime - btime
sink(file = "little.r.out", append = TRUE)
cat(paste(tm[1:3], collapse = ";"), "\n")
sink()
print(tm)
Comme vous pouvez le voir, ils sont presque identiques (première ligne et l'argument de fichier évier diffèrent). La sortie est sink
ed dans le fichier texte, donc importé dans R avec read.table
. J'ai créé un script bash pour exécuter chaque script 1000 fois, puis des moyennes calculées.
script bash est ici:
for i in `seq 1000`
do
./$1
echo "####################"
echo "Iteration #$i"
echo "####################"
done
Et les résultats sont les suivants:
# littler script
> mean(lit)
user system elapsed
0.489327 0.035458 0.588647
> sapply(lit, median)
L1 L2 L3
0.490 0.036 0.609
# Rscript
> mean(rsc)
user system elapsed
0.219334 0.008042 0.274017
> sapply(rsc, median)
R1 R2 R3
0.220 0.007 0.258
Longue histoire courte: à côté (évident) différence exécution en temps, est-il une autre différence? Plus important question est: pourquoi devriez/préférez-vous littler sur Rscript (ou vice versa)?
+1 Bonne question; aime le détail. – Shane
Merci Shane, le fichier de données est disponible ici: http://bit.ly/ac0Fb1 Remarquez que j'ai une machine très lente, donc si vous décidez d'exécuter ces scripts, vous aurez plus de chances d'obtenir des valeurs plus basses. Les bonnes réponses de Dirk, comme d'habitude, ont attiré l'attention sur d'autres problèmes avec ces scripts de référence ... alors prenez ces résultats cum grano salis. – aL3xa