base1 = data.frame(CAPSULE-6ren">
gpt4 book ai didi

r - 为什么 "relevel"不适用于我的逻辑回归?

转载 作者:行者123 更新时间:2023-12-04 09:31:20 25 4
gpt4 key购买 nike

我正在尝试使用指令 relevel 将因子中的引用类别重新定义为最后一个类别。

起初,我得到了一个错误:

base1 <- within(base1, DPROS <- relevel(DPROS, ref = 4))  
Error in relevel.default(DPROS, ref = 4) : 'relevel' only for factors

我使用了 Epicalc 包的 des 指令来检查 DPROS 是数字还是因子:
des(base1)

No. of observations = 380
Variable Class Description
1 CAPSULE numeric
2 AGE numeric
3 DPROS numeric
4 DCAPS numeric
5 PSA numeric

我使用 as.factor 使 DPROS 成为一个因素。
DPROS <- as.factor(DPROS)

但我仍然遇到同样的错误:
base1 <- within(base1, DPROS <- relevel(DPROS, ref = 4))  
Error in relevel.default(DPROS, ref = 4) : 'relevel' only for factors

使用 des 它仍然说 DPROS 是数字,但 is.factor(DPROS) 返回 TRUE。

我究竟做错了什么?

最佳答案

我不确定这里发生了什么。您的问题中没有足够的信息来说明。 (您可能想阅读此主题: how-to-make-a-great-r-reproducible-example ,并编辑您的 Q,特别是如果我下面的回答没有帮助。)另外,我怀疑您在

    DPROS <- as.`enter code here`factor(DPROS)  

我假设你的意思是: DPROS <- as.factor(DPROS) .

一种可能性是您附加了数据框。考虑:
> set.seed(9)
> base1 = data.frame(CAPSULE=rnorm(100), AGE=rnorm(100),
+ DPROS=as.numeric(sample(1:4, 100, replace=T)),
+ DCAPS=rnorm(100), PSA=rnorm(100))
> attach(base1)
> des(base1)

No. of observations = 100
Variable Class Description
1 CAPSULE numeric
2 AGE numeric
3 DPROS numeric
4 DCAPS numeric
5 PSA numeric

> base1 <- within(base1, DPROS <- relevel(DPROS, ref = 4))
Error in relevel.default(DPROS, ref = 4) : 'relevel' only for factors

> DPROS <- as.factor(DPROS)
> base1 <- within(base1, DPROS <- relevel(DPROS, ref = 4))
Error in relevel.default(DPROS, ref = 4) : 'relevel' only for factors

> des(base1)

No. of observations = 100
Variable Class Description
1 CAPSULE numeric
2 AGE numeric
3 DPROS numeric
4 DCAPS numeric
5 PSA numeric

> is.factor(DPROS)
[1] TRUE

这重现了您所描述的行为,据我所知,您发生了什么事。

如果您尝试以下操作,您会发现它可以正常工作:
> base1 <- within(base1, DPROS <- as.factor(DPROS))
> des(base1)

No. of observations = 100
Variable Class Description
1 CAPSULE numeric
2 AGE numeric
3 DPROS factor
4 DCAPS numeric
5 PSA numeric

> base1 <- within(base1, DPROS <- relevel(DPROS, ref = 4))

如果发生这种情况,则它是附加数据框在 R 中工作方式的固有部分。您可以更改已附加的变量,而无需更改数据框中的实际变量。正如@GavinSimpson 所指出的,通常最好避免使用 attach .

关于r - 为什么 "relevel"不适用于我的逻辑回归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17012715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com