【发布时间】:2021-03-15 03:52:49
【问题描述】:
我正在尝试按年龄对我的 glm 模型进行分层。
我的主要问题是:我可以创建一个名为 BYDECADE 的新列并按如下方式运行代码,而不是在 glm 中执行此子集设置吗?
fit <- glm(COMPLICATION~BYDECADE,
data = data.clean,
family = binomial)
AGE BYDECADE
43 40
45 40
24 20
21 20
23 20
37 30
34 30
36 30
以下作品,但显然我并没有捕捉到每个 50 岁以上的人的十年
fit <- glm(COMPLICATION~AGE,
data = subset(data.clean, AGE > 50),
family = binomial)
但以下内容对我不起作用,我不知道该怎么做。
fit <- glm(COMPLICATION~AGE,
data = subset(data.clean, AGE > 50 & AGE <= 60),
family = binomial)
【问题讨论】:
-
不太清楚你真正在问什么。第一个问题的答案是肯定的,您可以很好地制作该列并按照您认为合适的方式使用它。您其余的代码示例我看不出它们与您的第一个问题有什么关系?在一种情况下,您正在过滤大于 50 的
AGE,而在另一种情况下,您正在过滤 (50,60] 的 AGE 范围。这与将年龄四舍五入到最接近的 10'er 有什么关系? -
非常感谢您回答了这些问题,因为我可以创建一个新专栏。我所展示的是,如果过滤器 AGE > 50 代码运行,但如果我添加额外的位以过滤 AGE > 50 和 AGE
-
你能显示错误吗?
-
contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]]) 中的错误:对比只能应用于具有 2 个或更多级别的因子 -
为此,我检查了变量 AGE,它是一个具有 > 2 个级别的因素。