【问题标题】:R Dummy-variable to be populated from multiple columns [duplicate]从多列填充的R虚拟变量[重复]
【发布时间】:2018-03-22 06:11:09
【问题描述】:

我是 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

那么任何人都可以建议我如何实现这一目标吗?

非常感谢您在这方面的任何帮助。谢谢!

【问题讨论】:

    标签: r dummy-variable


    【解决方案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
    

    【讨论】:

    • 不知道你是如何根据格式如此糟糕的问题解决这个问题的。我向你致敬@akrun。
    • @MauritsEvers 我点击了格式正确的编辑按钮。但是,因为我很忙,所以没有改变它:=)
    • 聪明啊。没有意识到这会有所作为。感谢您的提示:-)
    猜你喜欢
    • 2018-07-15
    • 2017-05-31
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多