gpt4 book ai didi

r - 将 R 因子转换为二进制矩阵值

转载 作者:行者123 更新时间:2023-12-04 00:39:03 26 4
gpt4 key购买 nike

我想将我的数据帧转换为一个矩阵,该矩阵将单个因子列扩展为多个因子列并分配一个 1/0取决于因素。例如

C1 C2 C3
A 3 5
B 3 4
A 1 1

应该变成类似的东西
C1_A C1_B C2 C3
1 0 3 5
0 1 3 4
1 0 1 1

我怎样才能在 R 中做到这一点?我试过 data.matrix , as.matrix这没有返回我想要的。他们为单个因子列分配一个“整数”值,没有扩展。

最佳答案

假设 dat是你的数据框:

cbind(dat, model.matrix( ~ 0 + C1, dat))

C1 C2 C3 C1A C1B
1 A 3 5 1 0
2 B 3 4 0 1
3 A 1 1 1 0

此解决方案适用于任意数量的因子级别,无需手动指定列名称。

如果要排除列 C1 ,你可以使用这个命令:
cbind(dat[-1], model.matrix( ~ 0 + C1, dat))

关于r - 将 R 因子转换为二进制矩阵值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13901153/

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