如何在 R 中保存函数的结果而不返回它?
Posted
技术标签:
【中文标题】如何在 R 中保存函数的结果而不返回它?【英文标题】:How can I save the results of a function in R without returning it? 【发布时间】:2015-11-01 23:09:45 【问题描述】:我想保存函数的结果而不返回它。我知道函数中的变量是本地的。我尝试了以下方法,它们返回NULL
。
function1 <- function(directory)
setwd(directory)
#some codes
save(list=ls(.GlobalEnv), file= "result.Rdata")
# save.image(file= "result.Rdata")
function1("~/Desktop")
【问题讨论】:
为什么要这样做?请提供一些细节。 我正在将此功能应用于目录中的所有文件(不相关)。 您想要或不想返回什么? NULL 已经什么都不是了。你需要给我详细信息。 【参考方案1】:请详细说明您想要实现的目标。要将结果保存在文件中还是 R 工作区中?第一种情况
function1 <- function(directory)
setwd(directory)
#some codes
a <- 1
save(list=ls(), file= "result.Rdata")
会成功的。注意:您希望通过 ls() 保存当前环境,而不是全局环境(除非您在那里分配值)。但是为什么要保存函数内部的所有变量,而不仅仅是重要的值呢?
如果要保存到工作区,请使用 assign()。
【讨论】:
【参考方案2】:返回结果怎么样invisible
test <- function(x)
return(invisible(x^2))
test(10) # no display of the result
abc <- test(10)
abc #contains 100
【讨论】:
以上是关于如何在 R 中保存函数的结果而不返回它?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python3 中向调用函数返回更多值并显示结果,目前它只打印第一个值而不增加? [复制]