【问题标题】:How to keep ID in dummyVars()如何在 dummyVars() 中保存 ID
【发布时间】:2021-04-21 15:47:03
【问题描述】:

我想使用 One-Hot-Encoding 转换 Gender 和 Country。 使用下面的代码,我无法创建包括ID

的新数据集
library(caret)    
ID<-1:10
Gender<-c("F","F","F","M","M","F","M","M","F","M")
Country<-c("Mali","France","France","Guinea","Senegal",
        "Mali","France","Mali","Senegal","France")
data<-data.frame(ID,Gender,Country)
#One hot encoding

dmy <- dummyVars(" ~Gender+Country", data = data, fullRank = T)

dat_transformed <- data.frame(predict(dmy, newdata = data))

dat_transformed 

   Gender.M Country.Guinea Country.Mali Country.Senegal
1         0              0            1               0
2         0              0            0               0
3         0              0            0               0
4         1              1            0               0
5         1              0            0               1
6         0              0            1               0
7         1              0            0               0
8         1              0            1               0
9         0              0            0               1
10        1              0            0               0

我想获得一个包含ID 的数据集,而不对其进行编码。

   ID Gender.M Country.Guinea Country.Mali Country.Senegal
1   1        0              0            1               0
2   2        0              0            0               0
3   3        0              0            0               0
4   4        1              1            0               0
5   5        1              0            0               1
6   6        0              0            1               0
7   7        1              0            0               0
8   8        1              0            1               0
9   9        0              0            0               1
10 10        1              0            0               0

【问题讨论】:

    标签: r r-caret one-hot-encoding


    【解决方案1】:
    dat_transformed <- cbind(ID,dat_transformed)
    
    dat_transformed
    
       ID Gender.M Country.Guinea Country.Mali Country.Senegal
       1        0              0            1               0
       2        0              0            0               0
       3        0              0            0               0
       4        1              1            0               0
       5        1              0            0               1
       6        0              0            1               0
       7        1              0            0               0
       8        1              0            1               0
       9        0              0            0               1
      10        1              0            0               0
    

    【讨论】:

    • 谢谢。这就是我最终决定要做的事情。但我担心将 ID 合并到编码表会在我没有意识到的情况下造成不匹配
    猜你喜欢
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    相关资源
    最近更新 更多