为了抑制数字的指数符号,在我的全局环境中,我有 options("scipen" = 100)
.为了做一些我需要指数表示法的事情,我想在函数内部临时更改这个选项,比如
f <- function(x){
options("scipen" = -100)
...
}
但是,更改函数内的选项也会自动更改全局环境中的选项。有没有办法只在函数内部更改选项?
最佳答案
这是使用的好地方on.exit()
.它具有的优点确保 在退出函数调用的评估框架之前,选项被重置为其原始值(存储在 oo
中)——即使退出是错误的结果。
f <- function(x) {
oo <- options(scipen = -100)
on.exit(options(oo))
print(x)
}
## Try it out
1111
## [1] 1111
f(1111)
## [1] 1.111e+03
1111
## [1] 1111
关于r - 在函数环境中更改 options() 而不更改 R 全局环境中的 options()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35584035/