gpt4 book ai didi

r - 如何限制脚本中使用的变量的范围?

转载 作者:行者123 更新时间:2023-12-04 10:11:11 24 4
gpt4 key购买 nike

假设我编写了一个使用一些变量的 R 脚本。当我运行它时,这些变量会干扰全局 R 环境。为了防止这种情况,我如何将脚本中使用的变量范围限制为该脚本?注意:我知道一种方法是使用函数,还有其他方法吗?

最佳答案

只需使用 local=TRUE论据 source并评估 source除了您的全局环境之外的其他地方。这里有几种方法可以做到这一点(假设您不想访问脚本中的变量)。 foo.R只包含 print(x <- 1:10) .

do.call(source, list(file="c:/foo.R", local=TRUE), envir=new.env())
# [1] 1 2 3 4 5 6 7 8 9 10
ls()
# character(0)

mysource <- function() source("c:/foo.R", local=TRUE)
mysource()
# [1] 1 2 3 4 5 6 7 8 9 10
ls()
# [1] "mysource"
sys.source可能是最直接的解决方案。
sys.source("c:/foo.R", envir=new.env())

您还可以在附加环境中评估文件,以防您想要访问变量。请参阅 ?sys.source 中的示例如何做到这一点。

关于r - 如何限制脚本中使用的变量的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7275407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com