要从多列填充的 R 虚拟变量
R Dummy-variable to be populated from multiple columns
我是 R 的初学者,希望在数据集上实现虚拟变量。
我的数据集包含如下几列 -
Dataset1
T1 T2 T3
A C B
A C B
A C B
A D C
B D C
B E F
我想向其中添加虚拟变量,例如 dummy,A;假人,B; dummy,C 等等.. 如果它存在于 T1,T2 或 T3 中,则将它们的值指定为 1,否则为 0.
所以最终的数据集应该是这样的-
T1 T2 T3 dummy,A dummy,B dummy,C dummy,D dummy,E dummy,F
A C B 1 1 1 0 0 0
A C B 1 1 1 0 0 0
A C B 1 1 1 0 0 0
A D C 1 0 1 1 0 0
B D C 0 1 1 1 0 0
B E F 0 1 0 0 1 1
所以有人可以建议我如何实现这一目标吗?
非常感谢这方面的任何帮助。谢谢!
我们可以使用 qdapTools
中的 mtabulate
。转置 'Dataset1',将其转换为 data.frame
,应用 mtabulate
,更改其列名(如果需要)并将 cbind
与原始 'Dataset1'
library(qdapTools)
d1 <- mtabulate(as.data.frame(t(Dataset1)))
row.names(d1) <- NULL
names(d1) <- paste0("dummy.", names(d1))
cbind(Dataset1, d1)
# T1 T2 T3 dummy.A dummy.B dummy.C dummy.D dummy.E dummy.F
#1 A C B 1 1 1 0 0 0
#2 A C B 1 1 1 0 0 0
#3 A C B 1 1 1 0 0 0
#4 A D C 1 0 1 1 0 0
#5 B D C 0 1 1 1 0 0
#6 B E F 0 1 0 0 1 1
我是 R 的初学者,希望在数据集上实现虚拟变量。
我的数据集包含如下几列 -
Dataset1
T1 T2 T3
A C B
A C B
A C B
A D C
B D C
B E F
我想向其中添加虚拟变量,例如 dummy,A;假人,B; dummy,C 等等.. 如果它存在于 T1,T2 或 T3 中,则将它们的值指定为 1,否则为 0.
所以最终的数据集应该是这样的-
T1 T2 T3 dummy,A dummy,B dummy,C dummy,D dummy,E dummy,F
A C B 1 1 1 0 0 0
A C B 1 1 1 0 0 0
A C B 1 1 1 0 0 0
A D C 1 0 1 1 0 0
B D C 0 1 1 1 0 0
B E F 0 1 0 0 1 1
所以有人可以建议我如何实现这一目标吗?
非常感谢这方面的任何帮助。谢谢!
我们可以使用 qdapTools
中的 mtabulate
。转置 'Dataset1',将其转换为 data.frame
,应用 mtabulate
,更改其列名(如果需要)并将 cbind
与原始 'Dataset1'
library(qdapTools)
d1 <- mtabulate(as.data.frame(t(Dataset1)))
row.names(d1) <- NULL
names(d1) <- paste0("dummy.", names(d1))
cbind(Dataset1, d1)
# T1 T2 T3 dummy.A dummy.B dummy.C dummy.D dummy.E dummy.F
#1 A C B 1 1 1 0 0 0
#2 A C B 1 1 1 0 0 0
#3 A C B 1 1 1 0 0 0
#4 A D C 1 0 1 1 0 0
#5 B D C 0 1 1 1 0 0
#6 B E F 0 1 0 0 1 1