【发布时间】:2020-03-02 05:22:55
【问题描述】:
我在我自己的函数foo 中使用库robumeta 中的lm() 类似函数robu()。
但是,我正在处理 formula 参数,这样当它丢失时,默认公式将是:formula(dint~1) 或用户定义的任何公式。
它工作正常,但是,在foo 的输出中,打印的公式调用始终是:Model: missing(f) if formula(dint ~ 1),无论在foo 中输入什么公式。
我能否更正这部分输出,使其仅显示所使用的确切公式? (见下面的例子)
dat <- data.frame(dint = 1:9, SD = 1:9*.1,
time = c(1,1,2,3,4,3,2,4,1),
study.name = rep(c("bob", "jim", "jon"), 3))
library(robumeta)
# MY FUNCTION:
foo <- function(f, data){
robu(formula = if(missing(f)) formula(dint~1) else formula(f), data = data, studynum = study.name, var = SD^2)
}
# EXAMPLES OF USE:
foo(data = dat) ## HERE I expect: `Model: dint ~ 1`
foo(dint~as.factor(time), data = dat) ## HERE I expect: `Model: dint ~ time`
【问题讨论】: