这有效
lm(mpg ~ cyl, mtcars)
这样做:
lm(`~`(mpg, cyl), mtcars)
但这不是:
lm(base::`~`(mpg, cyl), mtcars)
Error in terms.formula(formula, data = data) :
argument is not a valid model
为什么第三种情况会失败?
答案 0 :(得分:4)
似乎问题源于git add --all .
函数。你从
terms()
这可以追溯到C source for that function
terms(base::`~`(mpg,cyl))
所以它确实在寻找一个tildeSymbol = install("~");
if (!isLanguage(CAR(args)) ||
CAR(CAR(args)) != tildeSymbol ||
(length(CAR(args)) != 2 && length(CAR(args)) != 3))
error(_("argument is not a valid model"));
,而不是一个以命名空间为前缀的~
。在这种情况下,~
函数就像这样
CAR