2014-07-03 286 views
1

我已經嘗試了Rscript和R CMD BATCH。從命令行運行R腳本不執行代碼

例如,如果我運行這個簡易R腳本:通過使用

> R CMD BATCH test.R 

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

我得到以下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。

我在做什麼錯?

謝謝!

+4

您定義函數'test',但從不執行函數'test',因此您爲什麼會期望執行'test'的輸出顯示? – mnel

+0

我認爲調用R CMD BATCH會執行腳本。 – user3181905

回答

8

你需要在你的腳本中調用你的函數,在這一點上,你只是定義它,但從來沒有調用它!也發生在我身上。因此,請添加:

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

非常感謝! – user3181905