R Shiny unsource 源文件
R Shiny unsource sourced files
R / Shiny 的强大功能之一是可以在 R 代码中 "source" 另一个 R 文件 .我动态地这样做,所以最后有很多源文件。到目前为止一切顺利。
FileToSource <- paste("Folder/",df$filename,".R", sep = "")
source(FileToSource, chdir=T)
unsource(......) ???
但有时我想清理一下。我可以删除变量等,但是我可以 "unsource" 以前的 "sourced" 文件吗?
我一直在寻找一种方法的代码,但直到现在都没有运气。
你可能想知道 它是否对 "unsource" 文件有必要,但我喜欢偶尔 清理 并且这可以是其中的一部分。 冲突代码等的可能性较小...
建议?
提前致谢,如果我找到办法我也会post在这里
您可能要考虑使用本地环境。假设有一个名为 ~/x.R
的文件,其中包含一行 bb <- 10
。您可以创建一个新环境
envir <- new.env()
然后通过
在该环境中获取文件
source('~/x.R',local=envir)
然后,您将能够获得 bb
的值作为 envir$bb
,并且您不会在全局环境中看到 bb
。之后,您可以通过设置 envir <- NULL
或类似的设置来删除环境 envir
。
太好了,我做了这个测试以发现 if/how 它有效:
A.R:
xx <- function(){
print("A print")
}
yy <- 11
B.R:
xx <- function(){
print("B print")
}
yy <- 99
Main.R:
(删除 # 会出现错误:尝试应用非函数)
A <- new.env()
B <- new.env()
source("A.R", local=A)
source("B.R", local=B)
A$xx()
print(A$yy)
B$xx()
print(B$yy)
A <- NULL
#A$xx()
#print(A$yy)
B$xx()
print(B$yy)
B <- NULL
#A$xx()
#print(A$yy)
#B$xx()
#print(B$yy)
所以最后Main.R就是
空旷干净整洁
<< 正是我想要的! >>
感谢@MARAT
R / Shiny 的强大功能之一是可以在 R 代码中 "source" 另一个 R 文件 .我动态地这样做,所以最后有很多源文件。到目前为止一切顺利。
FileToSource <- paste("Folder/",df$filename,".R", sep = "")
source(FileToSource, chdir=T)
unsource(......) ???
但有时我想清理一下。我可以删除变量等,但是我可以 "unsource" 以前的 "sourced" 文件吗?
我一直在寻找一种方法的代码,但直到现在都没有运气。
你可能想知道 它是否对 "unsource" 文件有必要,但我喜欢偶尔 清理 并且这可以是其中的一部分。 冲突代码等的可能性较小...
建议?
提前致谢,如果我找到办法我也会post在这里
您可能要考虑使用本地环境。假设有一个名为 ~/x.R
的文件,其中包含一行 bb <- 10
。您可以创建一个新环境
envir <- new.env()
然后通过
在该环境中获取文件 source('~/x.R',local=envir)
然后,您将能够获得 bb
的值作为 envir$bb
,并且您不会在全局环境中看到 bb
。之后,您可以通过设置 envir <- NULL
或类似的设置来删除环境 envir
。
太好了,我做了这个测试以发现 if/how 它有效:
A.R:
xx <- function(){
print("A print")
}
yy <- 11
B.R:
xx <- function(){
print("B print")
}
yy <- 99
Main.R:
(删除 # 会出现错误:尝试应用非函数)
A <- new.env()
B <- new.env()
source("A.R", local=A)
source("B.R", local=B)
A$xx()
print(A$yy)
B$xx()
print(B$yy)
A <- NULL
#A$xx()
#print(A$yy)
B$xx()
print(B$yy)
B <- NULL
#A$xx()
#print(A$yy)
#B$xx()
#print(B$yy)
所以最后Main.R就是
空旷干净整洁
<< 正是我想要的! >>
感谢@MARAT