2015-11-01 38 views
0

我想保存一個函數的結果而不返回它。我知道函數中的變量是局部的。我試了下,他們返回NULL如何將函數的結果保存在R中而不返回?

function1 <- function(directory) 
{ 
    setwd(directory) 
    #some codes 
    save(list=ls(.GlobalEnv), file= "result.Rdata") 
    # save.image(file= "result.Rdata") 
} 

function1("~/Desktop") 
+0

你爲什麼要這樣做?請提供一些細節。 – nicola

+0

我正在將此函數應用於目錄中的所有文件(與這些文件無關)。 – Soheil

+0

你想要還是不想返回? NULL已經不是什麼了。你需要給我詳細信息。 –

回答

1

什麼返回結果invisible

test <- function(x){ 
    return(invisible(x^2)) 
} 
test(10) # no display of the result 
abc <- test(10) 
abC#contains 100 
2

請告訴更多你想要達到的目標。你想將結果保存在文件中,還是保存在R工​​作區中?在第一種情況下,

function1 <- function(directory) { 
    setwd(directory) 
    #some codes 
    a <- 1 
    save(list=ls(), file= "result.Rdata") 
} 

將做的伎倆。注意:您想通過ls()保存當前環境,而不是全局環境(除非您在那裏指定值)。但是,爲什麼要保存函數內部的所有變量而不是重要的值呢?

如果要保存到工作區,請使用assign()