如何使用R开发名为“setOption”的函数?
如何使用R开发名为“setOption”的函数?,r,variadic-functions,getter-setter,setter,variadic,R,Variadic Functions,Getter Setter,Setter,Variadic,R::base有一个名为getOption的函数,可以按预期工作 getOption("max.print"); 我找不到反向函数setOption。请告诉我它在哪里 如果它不存在,我们能写一个吗 setOption("max.print", 20); 如果函数为骨架形式: setOption = function(myKey, myValue) { } 我尝试了显而易见的方法: options()[["
R::base
有一个名为getOption
的函数,可以按预期工作
getOption("max.print");
我找不到反向函数setOption
。请告诉我它在哪里
如果它不存在,我们能写一个吗
setOption("max.print", 20);
如果函数为骨架形式:
setOption = function(myKey, myValue)
{
}
我尝试了显而易见的方法:
options()[["max.print"]] = 20
这会抛出一个错误
也许是关于:
onames = names(options());
options(setNames( ???
上述代码尚未完成,因此存在此问题
以下是“par”的可变getter setter
函数示例:
我正在寻找
R::base
解决方案。在反复研究了par
的示例之后,我发现了这一点
setOption = function(myKey, myValue)
{
onames = names( options() );
if(is.element(myKey, onames))
{
options(setNames(list(myValue), myKey));
}
}
这遵循了可变getter setter
方法。它还创建了base::getOption
的明显缺失的inverse
函数
例子
我正在寻找
R::base
解决方案。在反复研究了par
的示例之后,我发现了这一点
setOption = function(myKey, myValue)
{
onames = names( options() );
if(is.element(myKey, onames))
{
options(setNames(list(myValue), myKey));
}
}
这遵循了可变getter setter
方法。它还创建了base::getOption
的明显缺失的inverse
函数
例子
utils::setOption()
是否提供了您想要的?也许这就是您正在寻找的选项(max.print=20)
??utils::setOption
不显示anything@mshaffer很抱歉,这是R.utils::setOption()
Doesutils::setOption()
给你想要的?也许这就是你正在寻找的选项(max.print=20)
??
不显示anything@mshaffer很抱歉,这很好。好+1这是显而易见的解决方案,不是我想要的。正在使用getter setter
的编程概念寻找一种可变的
解决方案。这是一个函数setOption
,它可变地传递一个键和一个值。你能提供一个这样的可变函数调用的示例吗?当然,我将发布一个可变getter setter
好的工作示例。好+1这是显而易见的解决方案,不是我想要的。正在使用getter setter
的编程概念寻找一种可变的
解决方案。这是一个函数setOption
,它可变地传递一个键和一个值。你能提供一个这样的可变函数调用的示例吗?当然,我将发布一个可变getter setter
setOption <- function(myKey, myValue) rlang::exec('options', !!myKey := myValue)
setOption('max.print', 30)
getOption("max.print")
#> [1] 30
setOptions <- options
setOptions(max.print = 20, digits = 12)
getOption("max.print")
#> [1] 20
getOption("digits")
#> [1] 12
setOption = function(myKey, myValue)
{
onames = names( options() );
if(is.element(myKey, onames))
{
options(setNames(list(myValue), myKey));
}
}
getOption("digits");
# [1] 3
setOption("digits", 5);
getOption("digits");
# [1] 5