繁体   English   中英

如何在不返回函数的情况下将结果保存在R中?

[英]How can I save the results of a function in R without returning it?

我想保存一个函数的结果而不返回它。 我知道函数中的变量是局部的。 我尝试了以下方法,它们返回NULL

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

function1("~/Desktop")

请告诉更多您想要实现的目标。 您要将结果保存到文件还是R工作区中? 在第一种情况下

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

会成功的 注意:您要通过ls()而不是全局环境保存当前环境(除非您在此处分配值)。 但是,为什么要从函数内部保存所有变量,而不仅仅是重要值?

如果要保存到工作区,请使用assign()

返回结果invisible怎么办

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM