запуск R из командной строки Windows - PullRequest
22 голосов
/ 19 апреля 2011

У меня есть программа R в текстовом файле, скажем "functions.txt".
Я загружаю файл "functions.txt" в R, используя source("function.txt") а затем вызвать функции f1(), f2() и т. д., которые объявлены и определены в "function.txt" файл.
Мне также нужно загрузить пару библиотек R, используя library(), прежде чем я смогу использовать f1(), f2() и т. Д.

У меня вопрос: могу ли я получить все это (т.е. вызвать функцию f1() и f2()) из командной строки Windows, не открывая среду R?

Так что по сути я хочу

  1. загрузить библиотеки R, которые мне нужны для запуска f1(), f2() и т. Д.
  2. загрузить function.txt файл
  3. запускать отдельные функции f1 () и т. Д.
  4. записать результат

все из командной строки Windows c:\>

На моих компьютерах установлена ​​версия R для Windows.
Было бы очень любезно дать подробный ответ, потому что я не очень разбираюсь в компьютерах.

Привет

Ответы [ 3 ]

22 голосов
/ 19 апреля 2011

Барт прав, но это можно сделать проще. Если код

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

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

f1()
f2()

находится в файле 'myRcode.R'; то

Rscript myRcode.R

загрузит и выполнит его, включая два вызова функций.

Rscript.exe находится в том же каталоге, что и R.exe - который, возможно, придется добавить к $PATH.

9 голосов
/ 19 апреля 2011

Следующее «работает на моей машине» (но не Windows, но должно ...):

Если ваш functions.txt выглядит так:

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

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

команда:

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

должен создать файл out.txt, содержащий:

[1] "A"
[1] "B"
6 голосов
/ 12 мая 2014

Вот скрипт командной строки, основанный на приведенном выше коде:

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

Используя Windows 7, я запустил его как файл .bat. Работает отлично. Спасибо за чаевые. (конечно, это только мои конкретные подкаталоги)

...