![]() |
1
4
您要使用的主要功能是
示例用法:
等等,它将创建两个单独的名称空间:“fun1”和“fun2”,它们附加到
为每个文件手动(“2”是
将所有函数(和变量)加载到单个命名空间中。用
或
当然,如果您的项目规模越来越大,并且您有很多函数(和变量),那么编写一个包就是一种方法。 |
![]() |
2
5
我将探讨两种可能的解决方案。 (a) 以更实用的方式思考 . 不要在函数之外创建任何变量。因此,例如,main.r应该包含一个函数main(),该函数源于其他文件,并完成工作。当MAIN返回时,所有杂波都不会保留。 b) 手动清理 :
|
![]() |
3
3
如果您切换到使用包,您将得到作为一个附带的好处的名称空间(前提是您使用了名称空间文件)。使用包还有其他优点。 如果您真的试图避免使用包(您不应该这样做),那么您可以尝试在特定环境中分配变量。 |
![]() |
4
3
正如您所说,很好地避免名称空间污染,这只是一个努力划分名称空间并保持全局名称空间整洁的问题。 以下是这两种任务的基本功能: 了解/导航命名空间结构在启动时,R创建一个新环境来存储在该会话期间创建的所有对象——这就是“全局环境”。
但这不是根环境。根目录是一个称为“空环境”的环境——所有环境都链接回它:
创建新环境:
这个系统(起初)来自于python等人,在我看来就像一个满是嘉年华镜子的房间。另一方面,R大师似乎对此相当满意。我相信有很多原因,但我的直觉是,它们不会让环境持续存在。我注意到R初学者使用“attach”,如attach(“this_dataframe”);我注意到经验丰富的R用户不会这样做;他们使用“with”代替,例如,
(我想,如果使用“attach”然后使用“detach”,它们也会实现相同的效果,但是“with”更快,而且您不必记住第二步。)换句话说,通过限制全局命名空间中可见的对象,可以部分避免命名空间冲突。 |
![]() |
Tor · 使用Box<None>值初始化struct 2 年前 |
![]() |
Judy · 在两个JavaScript函数中更新全局变量 2 年前 |
![]() |
ask_me · Python中关于局部和全局范围的概念性问题 2 年前 |
![]() |
Astha Gupta · 闭包中的词汇作用域是如何发生的?[重复] 2 年前 |
![]() |
Empha · 从成员函数对对象所做的更改不会持续。范围/参考问题? 6 年前 |
![]() |
pag-r · Golang开关变量范围 6 年前 |
![]() |
yurnero · MATLAB:“加载”一个快速访问功能 6 年前 |