我需要从字符串创建一个公式,现在标准的方法是
f <- paste(var1, var2, sep="~")
lm(f, data=<some data.frame> ...)
但这令人惊讶地失败了“rlm”,它也应该接受在MASS包中出现的公式
rlm(formula, data, weights, ..., subset, na.action,
method = c("M", "MM", "model.frame"),
wt.method = c("inv.var", "case"),
model = TRUE, x.ret = TRUE, y.ret = FALSE, contrasts = NULL)
这是我得到的错误
Na/NaN/Inf in foreign function call
PS:如果我只是硬编码公式而不是使用f
,这样可以正常工作答案 0 :(得分:2)
使用as.formula
制作f
公式对象:
f <- as.formula(paste("stack.loss",".",sep="~"))
rlm(f, stackloss, psi = psi.bisquare)
Call:
rlm(formula = f, data = stackloss, psi = psi.bisquare)
Converged in 11 iterations
Coefficients:
(Intercept) Air.Flow Water.Temp Acid.Conc.
-42.2852537 0.9275471 0.6507322 -0.1123310
Degrees of freedom: 21 total; 17 residual
Scale estimate: 2.28