从命令行运行R脚本不会执行代码

时间:2014-07-03 03:27:14

标签: r rscript

我已经尝试了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。

我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:8)

你需要在你的脚本中调用你的函数,此时你只是定义它但从不调用它!也发生在我身上。所以添加:

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