我在 R 中创建了 2 个包。一个包中的变量在另一个包的函数中使用。所以我声明了全局变量,如var <<- "value"
. 现在每个功能都可以正常工作。但是现在每个人都可以访问这些变量。如果任何用户更改变量的值,许多功能将无法正常工作。是否可以创建一个变量并仅在某些特定包中使用该变量?
问问题
136 次
2 回答
4
将设置options
而不是变量存储在.GlobalEnv
. 您可以options
用作键值存储或分配例如 alist
到一个键(可能是您的包的名称),就像我在pander package中所做的那样。如您所见,我什至创建了一些辅助函数来更新/查询这些列表元素。
快速示例:
> options(foo = list(a = pi, b = 1:3))
> getOption('foo')
$a
[1] 3.141593
$b
[1] 1 2 3
> getOption('foo')['a']
$a
[1] 3.141593
于 2013-04-16T15:07:52.897 回答
1
通过创造新的环境是可能的。http://digitheadslabnotebook.blogspot.in/2011/06/environments-in-r.html
>cacheEnv <- new.env()
> url <- "http://mytext.com"
> file <- "This is the content I downloaded"
> cacheEnv <- new.env()
> assign(url, file, envir=cacheEnv)
> get(url, envir=cacheEnv)
[1] "This is the content I downloaded"
用户不能直接编辑变量。他们只能使用环境名称来编辑变量。
于 2013-04-17T06:58:10.223 回答