我正在编写一个函数,该函数接受两个变量,并分别在一组控件上回归它们中的每一个,这些控件表示为单边公式。现在我正在使用以下内容来制作其中一个回归的公式,但感觉有点被黑了:
foo <- function(x, y, controls) {
cl <- match.call()
xn <- cl[["x"]]
xf <- as.formula(paste(xn, deparse(controls)))
}
我更愿意使用
update.formula()
来做到这一点, 但当然 update.formula(controls, x ~ .)
和 update.formula(controls, as.name(x) ~ .)
不工作。我该怎么办?
最佳答案
这是一种方法:
right <- ~ a + b + c
left <- ~ y
left_2 <- substitute(left ~ ., list(left = left[[2]]))
update(right, left_2)
但我认为您必须要么将文本字符串粘贴在一起,要么使用替代品。据我所知,没有函数可以从两个单边公式(或类似的等价物)创建一个单边公式。
关于r - 在 update.formula 中使用函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1213783/