作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将公式的右侧传递给 R 函数,然后该函数“添加”公式的左侧并调用 gam()
.我想在没有丑陋的 as.formula() 结构等的情况下实现这一点。
我陷入了以下最小示例中,您知道出了什么问题吗?
require(mgcv)
set.seed(0) ## set.seed(1)
gamEx1 <- gamSim(1, n=400, dist="normal", scale=2) ## simulate some data
str(gamEx1) ## display structure
## calling gam() and passing the right-hand side of a formula
gamFitter <- function(formula.RHS, data, ...){
z <- 2*data$y + data$f0 # some given values
gam(z ~ formula.RHS, data=data, ...) # call gam()
}
## call the function with the right-hand side of a formula
gamFitter(formula.RHS=~s(x0)+s(x1)+s(x2)+s(x3), data=gamEx1)
Error in model.frame.default(formula = z ~ formula.RHS, data = data,
drop.unused.levels = TRUE) :
invalid type (language) for variable 'formula.RHS'
最佳答案
看来您应该使用 R 的内置功能,即 update.formula
,无需编写新函数:
> form <- ~s(x0)+s(x1)+s(x2)+s(x3)
> form
~s(x0)+s(x1)+s(x2)+s(x3)
> update.formula(form, z ~ .)
z ~ s(x0) + s(x1) + s(x2) + s(x3)
关于r - 如何将公式的右侧传递给另一个公式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10154776/
我是一名优秀的程序员,十分优秀!