Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R在函数中使用临时选项设置_R_Function_Options - Fatal编程技术网

R在函数中使用临时选项设置

R在函数中使用临时选项设置,r,function,options,R,Function,Options,我有一个函数需要设置一个选项,即stringsAsFactors=FALSE。我最常用的方法是在函数开始时存储现有值 op <- option("stringsAsFactors") 虽然这样做有效,但它是一个冗长而复杂的函数,可以从多个位置返回,因此我需要确保每个return(x)前面都有options(op),或者创建一个很小的函数(本身在我的函数中),它只执行以下操作: returnfunc有一个内置的on.exit函数可以实现这一点。比如说 f<-function() {

我有一个函数需要设置一个选项,即
stringsAsFactors=FALSE
。我最常用的方法是在函数开始时存储现有值

op <- option("stringsAsFactors")
虽然这样做有效,但它是一个冗长而复杂的函数,可以从多个位置返回,因此我需要确保每个
return(x)
前面都有
options(op)
,或者创建一个很小的函数(本身在我的函数中),它只执行以下操作:


returnfunc有一个内置的
on.exit
函数可以实现这一点。比如说

f<-function() {
    op <- options(stringsAsFactors=FALSE)
    on.exit(options(op))

    read.table(...)
}

f您还可以添加一个默认参数,允许用户根据需要进行更改,然后将该参数传递给使用该参数的函数

比如说,

f <- function(x, stringsAsFactors = FALSE) {

        read.csv(..., stringsAsFactors = stringsAsFactors)

}

f谢谢你的回答。是的,我不想把它弄得一团糟,但如果我不这样做,我就会犯一个我现在无法理解的错误。因此,作为一个短期的解决办法,我将使用Flick先生的解决方案,并在有时间时继续调查!同样值得一看的还有
getOption(“stringsAsFactors”)
default.stringsAsFactors()
Yes有一个微妙之处,我不知道选项被设置为既不假也不真。说op@stevec Yes正确吗。这一行正在做一些事情,都记录在
选项
帮助页面中。传递一个命名参数将设置一个新的选项值,但函数本身将返回以前的选项值,我们将其存储为
op
,这样我们可以在完成时重置。(当然,现在使用R4.0时,stringsAsFactors的默认值已更改为FALSE。)
f <- function(x, stringsAsFactors = FALSE) {

        read.csv(..., stringsAsFactors = stringsAsFactors)

}