Запуск сценария R из командной строки не приводит к выполнению кода

Я пробовал как Rscript, так и R CMD BATCH.

Например, если я запустил этот простой сценарий R:

test <- function(){
  print("test")
}

используя

> R CMD BATCH test.R

Я получаю следующий файл test.Rout:

R version 3.0.1 (2013-05-16) -- "Good Sport"
Copyright (C) 2013 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

[Previously saved workspace restored]

> test <- function(){
+   print("test")
+ }
> 
> proc.time()
  user  system elapsed 
  0.176   0.016   0.186 

Я не увидел ожидаемого результата:

>[1] "test"

где угодно - либо в командной строке, либо в файле test.Rout.

С Rscript я тоже не вижу вывода в командной строке.

У меня есть длинный сценарий R, который записывает файл отчета в определенный каталог, если я запускаю его внутри RStudio. Однако, когда я запускаю этот сценарий с помощью R CMD BATCH, я не вижу файл, созданный в каталоге. В соответствующем файле .Rout я вижу аналогичные операторы запуска отдельных строк кода, а не результат выполнения.

Я использую Ubuntu 12.04 LTS.

Что я делаю неправильно?

Спасибо!


person user3181905    schedule 03.07.2014    source источник
comment
Вы определяете функцию test, но никогда не выполняете функцию test, поэтому почему вы ожидаете, что результат выполнения test будет отображаться?   -  person mnel    schedule 03.07.2014
comment
Я думал, что вызов R CMD BATCH выполнит сценарий.   -  person user3181905    schedule 07.07.2014


Ответы (1)


Вам нужно вызвать вашу функцию внутри вашего скрипта, на данный момент вы только определяете ее, но никогда не вызываете ее! Со мной тоже бывает. Итак, добавьте:

test <- function(){
  print("test")
}
test()
person xv70    schedule 03.07.2014