【发布时间】:2016-07-05 11:33:51
【问题描述】:
是否有命令查看分类变量的编码方式?
例如,我有一个名为 HbA1c 的变量,我看到的类别是 =5.7。我想知道 =5.7 取什么值(如果是 0 或 1 或 2)。我需要它来进行回归分析。
很抱歉,如果这个问题已经得到解决,但我无法找到该帖子。
提前谢谢你。
【问题讨论】:
标签: r
是否有命令查看分类变量的编码方式?
例如,我有一个名为 HbA1c 的变量,我看到的类别是 =5.7。我想知道 =5.7 取什么值(如果是 0 或 1 或 2)。我需要它来进行回归分析。
很抱歉,如果这个问题已经得到解决,但我无法找到该帖子。
提前谢谢你。
【问题讨论】:
标签: r
如果x 是一个因素(R 中分类变量的技术名称),那么levels(x) 会按顺序为您提供级别,所以类似于
setNames(1:length(levels(f)),levels(f))
## a b c
## 1 2 3
会给你一个对应表。
您在 cmets 中的问题并不完全清楚,但如果您想使用从零开始的数值运行回归,我会尝试类似:
mydata$n <- as.numeric(mydata$f)-1
(与因子相关的数字代码始终从 1 到 N;这为您提供了一个从 0 到 N-1 的数字变量)。然后你可以像这样运行回归:
lm(y~n,data=mydata)
【讨论】:
Names(1:length(levels(dat1$HbA1ckatnorm)),levels(dat1$HbA1ckatnorm)),我得到一个表格,其中显示级别为1 2。如果我现在想重新编码变量,我使用来自library car 的recode 函数。我的代码看起来像 recode(dat1$HbA1ckatnorm, "'1'='0';'2'='1'"),但我收到显示 Levels: <5.7 >= 5.7 的错误,当然,重新编码功能不起作用。