从函数调用中获取参数值
Get argument value from function call
如何在函数调用中获取(可能未填充的)参数值?我正在尝试获取 linout
对于拟合 nnet
模型是真还是假的信息。
示例:
library(nnet)
df <- data.frame(a = runif(10), b = runif(10), c = runif(10) > .5)
fit <- nnet(c ~ ., data = df, size = 3)
fit$call
> nnet.formula(formula = c ~ ., data = df, size = 3)
在这里我知道 linout
是 FALSE
因为这是默认值。但也可能是这样的:
nnet.formula(formula = c ~ ., data = df, size = 3, lin = T)
在这里,我需要做一些从 lin
到 linout
的部分匹配并得到 T
有(至少)两个 nnet 方法。您正在使用公式方法并使用部分匹配为 linout 提供参数。这将测试是否有任何参数名称以 "lin":
开头
fit <- nnet(c ~ ., data = df, size = 3, lin=TRUE)
# weights: 13
# snipped output
fit$call
nnet.formula(formula = c ~ ., data = df, size = 3, lin = TRUE)
as.logical( max( unlist( lapply(names(fit$call), grep, patt="lin"))) )
#[1] TRUE
看看 lapply
如何处理调用对象很有趣:
> fit$call
nnet.formula(formula = c ~ ., data = df, size = 3, lin = FALSE)
> lapply(fit$call, class)
[[1]]
[1] "name"
$formula
[1] "call"
$data
[1] "name"
$size
[1] "numeric"
$lin
[1] "logical"
如何在函数调用中获取(可能未填充的)参数值?我正在尝试获取 linout
对于拟合 nnet
模型是真还是假的信息。
示例:
library(nnet)
df <- data.frame(a = runif(10), b = runif(10), c = runif(10) > .5)
fit <- nnet(c ~ ., data = df, size = 3)
fit$call
> nnet.formula(formula = c ~ ., data = df, size = 3)
在这里我知道 linout
是 FALSE
因为这是默认值。但也可能是这样的:
nnet.formula(formula = c ~ ., data = df, size = 3, lin = T)
在这里,我需要做一些从 lin
到 linout
的部分匹配并得到 T
有(至少)两个 nnet 方法。您正在使用公式方法并使用部分匹配为 linout 提供参数。这将测试是否有任何参数名称以 "lin":
开头fit <- nnet(c ~ ., data = df, size = 3, lin=TRUE)
# weights: 13
# snipped output
fit$call
nnet.formula(formula = c ~ ., data = df, size = 3, lin = TRUE)
as.logical( max( unlist( lapply(names(fit$call), grep, patt="lin"))) )
#[1] TRUE
看看 lapply
如何处理调用对象很有趣:
> fit$call
nnet.formula(formula = c ~ ., data = df, size = 3, lin = FALSE)
> lapply(fit$call, class)
[[1]]
[1] "name"
$formula
[1] "call"
$data
[1] "name"
$size
[1] "numeric"
$lin
[1] "logical"