我正在尝试使用R中的rms包中的Glm()构建一个glm模型。 但我不知道指标的Glm公式中的正确表达式。
允许我使用虹膜数据作为例子,
在基础R glm
函数中,我的代码有效,如下所示:
model1 = glm(Sepal.Length~Sepal.Width + Petal.Length + ifelse(Sepal.Width==3,1,0),data=iris)
但如果我在Glm
中使用相同的公式,它将返回
model2 = Glm(Sepal.Length~Sepal.Width + Petal.Length + ifelse(Sepal.Width==3,1,0),data=iris)
if(!length(fname)||!any(fname == zname)){: 缺少需要TRUE / FALSE的值
或者如果我使用
model3 = Glm(Sepal.Length~Sepal.Width + Petal.Length + asis(Sepal.Width==3),data=iris)
if(asc [i] == 8)next的错误:缺少值需要TRUE / FALSE
我只是不知道定义此转换的正确方法。另外我知道我可以通过将此指标作为数据中的新列来解决此问题,但之后我无法使用rms
的{{1}}函数生成正确的图。
答案 0 :(得分:0)
正如评论中所建议的那样,这似乎工作得很好(我真的不知道我在用datadist
做什么,但是摸索着......)
iris$sepal3 <- as.numeric(iris$Sepal.Width==3)
library(rms)
ddist <- with(iris,datadist(Sepal.Width, Petal.Length, sepal3))
options(datadist="ddist")
model1 <- Glm(Sepal.Length~Sepal.Width + Petal.Length + sepal3,
data=iris)
plot(Predict(model1))
(我收到关于Calling 'structure(NULL, *)' is deprecated
的警告信息,但我认为这是因为我使用R的开发版本和rms版本5.1.0 ...