R包中的参数对象
我有一个带参数的模拟模型 我没有将所有参数传递给主函数(这对于用户来说很复杂,因为一些参数的尺寸取决于它们自己,例如,如果R包中的参数对象,r,R,我有一个带参数的模拟模型 我没有将所有参数传递给主函数(这对于用户来说很复杂,因为一些参数的尺寸取决于它们自己,例如,如果n=2,vec_n的长度为2),而是希望包中有一个内部参数对象,所有函数都可以访问,用户可以更改 我制作了一个包Test,其中包含两个函数和一个内部列表internal=list(a=2),保存在sysdata.rda中 test_function<-function(b){ INTERNAL$a = b print(INTERNAL) second_fun
n=2
,vec_n
的长度为2),而是希望包中有一个内部参数对象,所有函数都可以访问,用户可以更改
我制作了一个包Test
,其中包含两个函数和一个内部列表internal=list(a=2)
,保存在sysdata.rda中
test_function<-function(b){
INTERNAL$a = b
print(INTERNAL)
second_function()
}
second_function<-function(){
print(INTERNAL$a)
}
显然,对象本身在函数之外不会发生变化
如果您能提供帮助/建议,我将不胜感激。
内部$a=b
在您的函数中创建内部
的本地副本,并对其进行修改。由于要修改全局副本,可以使用
INTERNAL$a <<- b
由(v1.0.0)于2021年4月19日创建
您可以将这两种想法结合起来:
内部$b
#>[1]“默认”
内部(b=2)
#>一美元
#> [1] 1
#>
#>b美元
#> [1] 2
内部(c=3)
#>一美元
#> [1] 1
#>
#>b美元
#> [1] 2
#>
#>$c
#> [1] 3
由(v1.0.0)于2021-04-19创建谢谢您的支持。是否有任何理由不使用环境?只要你知道你在做什么,环境就很好。事实上,这就是我的第二个解决方案所使用的:它只是没有让环境变得明显。
INTERNAL$a <<- b