【发布时间】:2020-09-02 02:51:43
【问题描述】:
我想使用 lm.beta 函数获得标准化回归系数。但是,当我运行代码时,它给了我一个错误:
var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm = na.rm) 中的错误: 对因子 x 调用 var(x) 已失效。 使用类似 'all(duplicated(x)[-1L])' 的东西来测试一个常数向量。
我认为这是由于我的模型中的一个分类变量。然后我查看了 Package ‘lm.beta’ 1 的 R 文档,当我运行示例时,我仍然得到同样的错误。代码如下:
## Annette Dobson (1990) "An Introduction to Generalized Linear Models".
## Page 9: Plant Weight Data.
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2, 10, 20, labels = c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
# standardize
lm.D9.beta <- lm.beta(lm.D9)
print(lm.D9.beta)
summary(lm.D9.beta)
coef(lm.D9.beta)
我有两个问题:
- 可以在 lm.beta 函数中使用分类变量吗?
- 如何避免这个错误?
感谢您的任何建议!
【问题讨论】:
-
我无法重现此错误。该代码可以在我的电脑上运行,您可以尝试更新 R 和已安装的软件包。
标签: r regression