gpt4 book ai didi

r - R语言中的变量冲突

转载 作者:行者123 更新时间:2023-12-04 19:31:09 25 4
gpt4 key购买 nike

我有一个 R 脚本,它采用 R 的其他脚本并以这种方式操作它们,并执行它们的代码。我的脚本使用了一些变量(显然),当其他脚本使用通用变量名时,我会陷入困境。我希望我可以像在胶囊中一样执行另一个脚本,这样重合的变量就不会相互影响。

我一直在阅读有关环境的书,并进行了很多尝试,但我没有理解它们的真正含义。

例子:

script1.txt
___________
i=sample(10:20,1)

script2.txt
___________
i=sample(10:20,1)

myscript.txt
___________
other.script = c("script1.txt", "script2.txt")
for( i in 1:2 ) {
source(other.script[i])
}
i==2

我希望每个变量“i”在不影响其他变量的情况下完成其职责(特别是我脚本中的那个,我不太关心其他变量)。

最佳答案

解决此问题的最佳方法是创建一组函数,将脚本捕获的功能分割开来。每个函数都在自己的环境中执行,防止变量相互干扰。理想情况下,函数不应太长,比如 10-20 行或代码。一个比调用这些函数来完成工作更大的脚本。如果您正确地执行此操作,您的脚本可能会简短而切题。我通常将这些函数存储在一个或多个脚本文件中,准备好 source由需要它们的脚本编辑。您甚至可以将它们包裹在一个包裹中。

您想要对脚本进行排序的方式,所有变量都是全局的,即在整个程序中都可以访问。一般来说,应该像瘟疫一样避免全局变量。这正是因为您的问题关注的是:如何防止变量相互干扰。就像我说的,抽象成函数或对象是防止这种情况发生的方法。有关全局变量的更多信息,可以在那里找到:

  • Global and local variables in R
  • Global variables in R
  • 关于r - R语言中的变量冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12750923/

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