gpt4 book ai didi

r - R 中包中的全局变量

转载 作者:行者123 更新时间:2023-12-03 06:05:20 25 4
gpt4 key购买 nike

我正在用 R 开发一个包。我有很多函数,其中一些需要一些全局变量。如何管理包中的全局变量?

我读过一些有关环境的内容,但我不明白它将如何运作,也不知道这是否是解决问题的方法。

最佳答案

您可以通过环境使用包局部变量。这些变量将可供包中的多个函数使用,但用户无法(轻松)访问,并且不会干扰用户工作空间。一个快速简单的例子是:

pkg.env <- new.env()

pkg.env$cur.val <- 0
pkg.env$times.changed <- 0

inc <- function(by=1) {
pkg.env$times.changed <- pkg.env$times.changed + 1
pkg.env$cur.val <- pkg.env$cur.val + by
pkg.env$cur.val
}

dec <- function(by=1) {
pkg.env$times.changed <- pkg.env$times.changed + 1
pkg.env$cur.val <- pkg.env$cur.val - by
pkg.env$cur.val
}

cur <- function(){
cat('the current value is', pkg.env$cur.val, 'and it has been changed',
pkg.env$times.changed, 'times\n')
}

inc()
inc()
inc(5)
dec()
dec(2)
inc()
cur()

关于r - R 中包中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12598242/

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