gpt4 book ai didi

将虚拟变量重新编码为有序因子

转载 作者:行者123 更新时间:2023-12-01 12:48:28 25 4
gpt4 key购买 nike

我需要一些有关逻辑回归编码因素的帮助。

我有六个代表收入等级的虚拟变量。我想将它们转换成单个有序因子以用于逻辑回归。

我的数据框看起来像:

    INC1 INC2 INC3 INC4 INC5 INC6
1 0 0 1 0 0 0
2 NA NA NA NA NA NA
3 0 0 0 0 0 1
4 0 0 0 0 0 1
5 0 0 1 0 0 0
6 0 0 0 1 0 0
7 0 0 1 0 0 0
8 0 0 0 1 0 0

我希望它看起来像什么:

    INC
1 INC3
2 NA
3 INC6
4 INC6
5 INC3
6 INC4
7 INC3
8 INC4

这一定是一个常见(且简单)的操作,但我的搜索没有找到关于如何执行此重新编码的简明答案。很感谢任何形式的帮助。

最佳答案

这是一个基于另一个答案的解决方案,它保留 NA 值并转换为有序因子。

> inc
INC1 INC2 INC3 INC4 INC5 INC6
1 0 0 1 0 0 0
2 NA NA NA NA NA NA
3 0 0 0 0 0 1
4 0 0 0 0 0 1
5 0 0 1 0 0 0
6 0 0 0 1 0 0
7 0 0 1 0 0 0
8 0 0 0 1 0 0
> inc$F = factor(apply(inc, 1, function(x) names(x)[x == 1]),levels=names(inc),ordered=TRUE)

> inc
INC1 INC2 INC3 INC4 INC5 INC6 F
1 0 0 1 0 0 0 INC3
2 NA NA NA NA NA NA <NA>
3 0 0 0 0 0 1 INC6
4 0 0 0 0 0 1 INC6
5 0 0 1 0 0 0 INC3
6 0 0 0 1 0 0 INC4
7 0 0 1 0 0 0 INC3
8 0 0 0 1 0 0 INC4
> inc$F
[1] INC3 <NA> INC6 INC6 INC3 INC4 INC3 INC4
Levels: INC1 < INC2 < INC3 < INC4 < INC5 < INC6

如果连续有多个 1,这将中断。

关于将虚拟变量重新编码为有序因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14161202/

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