这个错误是什么意思?
错误:
rhs
必须是语言对象
我无法真正向您展示与代码相关联的文本文件,但如果有帮助,这就是错误:
t.test(BILL1~SEX, Credit, conf.level=0.95,
mu = 0, paired=F,alternative = "two.sided",var.equal=F)
答案 0 :(得分:3)
tl; dr mosaic::t.test
函数未处理第二个未命名的参数,正如基于stats::t.test
...
我的Google搜索错误消息shows that this error only shows up in the lazyeval and mosaic packages。进一步探讨显示mosaic
包has a t.test()
function掩盖了基础R中出现的stats::t.test()
函数。
所以问题很可能与该功能有关,但没有更多信息,我们只能推测。我尝试了各种方法来打破mosaic::t.test()
(使用在数据中找不到的变量名,使用与函数对应的符号而不是数据对象等等),但可以&# 39;引发错误。您是否至少可以编辑您的问题以包含str(Credit)
... ??
好的,我设法猜到了,而且你的数据实际上没有任何问题(我认为)。
dd <- data.frame(x=1:10,y=rep(0:1,each=5))
stats::t.test(x~y,dd) ## works fine
library(mosaic)
mosaic::t.test(x~y,Credit)
## Error: `rhs` must be a language object
现在我们唯一的变化是名称 data=
参数*:
mosaic::t.test(x~y,data=Credit) ## works fine
问题是stats::t.test
的定义是
t.test(formula, data, subset, na.action, ...)
而mosaic::t.test
的
t.test(x, y=NULL, ..., data = parent.frame())
以便mosaic::t.test
解释第二个参数,如果它是未命名的,作为公式......