【问题标题】:Rstudio Columns Multiple Binary FeaturesRstudio 列多个二进制特征
【发布时间】:2018-04-03 14:35:38
【问题描述】:

我想将一列拆分为多个二进制虚拟列。我的数据框:df

id siz eage    
1 6 10    
2 7 11    
3 8 10

目前我有这个代码包 qdaptools 和插入符号:

df <- cbind(df [1:3],mtabulate(strsplit(as.character(df$age), ':')))

我的问题:我怎样才能给这些虚拟列起一个标题,所以我明白了:

id size age_10 age_11    
1 6 1 0    
2 7 0 1    
3 8 1 0

【问题讨论】:

    标签: r random-forest feature-engineering


    【解决方案1】:

    您可以从dummies 包中尝试dummy.data.frame

    library(dummies)
    library(dplyr)
    
    df %>%
      dummy.data.frame(names="age", sep="_")
    

    输出为:

      id size age_10 age_11
    1  1    6      1      0
    2  2    7      0      1
    3  3    8      1      0
    

    样本数据:

    df <- structure(list(id = 1:3, size = 6:8, age = c(10L, 11L, 10L)), .Names = c("id", 
    "size", "age"), class = "data.frame", row.names = c(NA, -3L))
    


    更新: 对于您在实际数据上遇到的错误,您可以使用以下代码

    sort.list(y) 中的错误:对于 'sort.list','x' 必须是原子的,你有吗 在列表中称为“排序”?

    library(dummies)
    library(dplyr)
    
    df %>%
      data.frame() %>%
      dummy.data.frame(names="Verkoopkanaal_groepering", sep="_")
    

    【讨论】:

    • 感谢您的回答,但现在我遇到了一个新问题/错误:sort.list(y) 中的错误:'x' must be atomic for 'sort.list' 你打电话给'sort '在名单上?我该如何解决这个问题?
    • this 有帮助吗?如果没有,那么您可能需要提供示例数据以及生成此错误的代码,最好的选择是发布新帖子。
    • 是的,但是在这段代码中我必须在哪里使用 unlist? df_new
    • 你能分享dput(head(df))吗?
    • pastebin 适合你吗(我的字符太多)。 pastebin.com/ak2M4imq
    【解决方案2】:

    按索引重命名:colnames(df)[4:5] &lt;- c("age_10", "age_11")
    按现有列名重命名colnames(df)[colnames(df) == "INSERT_COL_NAME"] &lt;- "NEW_COL_NAME"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      • 1970-01-01
      • 2017-10-15
      • 2022-04-26
      • 2012-12-27
      相关资源
      最近更新 更多