r - 在函数环境中更改 options() 而不更改 R 全局环境中的 options()?

标签 r function global option environment

为了抑制数字的指数符号,在我的全局环境中,我有 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/

相关文章:

r - 使用ggplot2绘制时间序列并同时进行预测

function - 为什么 Flutter 中的动态类型函数不能返回正确的类型?

sql - 如何在 SQL 中创建带有 2 个参数的函数?

r - 在 R Markdown 中为代码块添加换行符

r - 生成数据框和向量的组合

r - STM : how to keep metadata when converting from tm to stm document-term matrix?

c++ - 声明一个没有内容的函数; - 然后是内容 {} - C++

c# - asp.net c# 如何统计网站访问量

npm - 如何在本地安装和运行 npm jasmine

mocha.js - global 是未定义的,使用 mocha 对 babel 编译的代码运行测试