web-dev-qa-db-fra.com

exécution de R à partir de l'invite de commandes Windows

J'ai un programme R dans un fichier txt, dites "functions.txt".
Je charge le fichier "functions.txt" Le R en utilisant source("function.txt") puis j'appelle les fonctions f1(), f2() etc. qui sont déclarées et défini dans le fichier "function.txt".
J'ai également besoin de charger quelques bibliothèques R en utilisant library() avant de pouvoir utiliser f1(), f2() etc.

Ma question est: puis-je obtenir tout cela (c'est-à-dire appeler la fonction f1() et f2()) à partir de l'invite Windows sans ouvrir l'environnement R?

Donc, essentiellement, je veux

  1. charger les bibliothèques R dont j'ai besoin pour exécuter f1(), f2() etc.
  2. charger le fichier function.txt
  3. exécuter les fonctions individuelles f1 () etc.
  4. enregistrer le résultat

tout à partir de l'invite de commande de windows c:\>

J'ai une version Windows de R installée sur mes ordinateurs.
.

Cordialement

22
babu

Le message de Bart est correct, mais cela peut être fait plus simplement. Si le code

f1 <- function() {
  print("A")
}

f2 <- function() {
  print("B")
}

f1()
f2()

est dans un fichier 'myRcode.R'; ensuite

Rscript myRcode.R

va le charger et l'exécuter, y compris les deux appels de fonction.

Rscript.exe se trouve dans le même répertoire que R.exe - que l'on devra peut-être ajouter au $PATH.

22
Dirk Eddelbuettel

Ce qui suit "fonctionne sur ma machine" (pas Windows cependant, mais cela devrait ...):

Si votre functions.txt ressemble à:

f1 <- function()
{
  print("A")
}

f2 <- function()
{
  print("B")
}

la commande:

Rscript -e "source('functions.txt');f1();f2()" > out.txt

devrait créer le fichier out.txt contenant:

[1] "A"
[1] "B"
9
Bart Kiers

Voici un script de ligne de commande, basé sur le code ci-dessus:

d:\misc2\bin\Rscript.exe    d:\r_code\mycode.r

En utilisant Windows 7, je l'ai exécuté en tant que fichier .bat. Fonctionne bien. Merci pour le conseil. (bien sûr, ce ne sont que mes sous-répertoires particuliers)

6
Bill Yarberry