【问题标题】:Change value of a column based on whether string is in another column using R使用R根据字符串是否在另一列中更改列的值
【发布时间】:2014-10-25 00:41:41
【问题描述】:

我想根据数据框的不同列中是否存在字符串来创建一个新列。

 name
  Jon
  Anne
Jobraith
  Knut

变成:

 name      dummy
  Jon        1
  Anne       0
Jobraith     1
  Knut       0

寻找类似的东西:

df$dummy <- ifelse('jo' in df$name, 1, 0)

【问题讨论】:

    标签: r regex substring


    【解决方案1】:

    您可以使用grepl( ... ) 来检查子字符串...

    df <- data.frame(name = c('Jon', 'Anne', 'Jobraith', 'Knut'))
    df$dummy <- as.numeric(grepl('jo', df$name, ignore.case=T))
    df
    
    #       name dummy
    # 1      Jon     1
    # 2     Anne     0
    # 3 Jobraith     1
    # 4     Knut     0
    

    【讨论】:

    • 你为什么要在这里使用ifelse?为什么不只是as.numeric
    • ifelse 很好,因为在不需要 0,1 的情况下它更通用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    相关资源
    最近更新 更多