代码之家  ›  专栏  ›  技术社区  ›  Banjo

用dplyr(NA和grep)在多种条件下突变

  •  0
  • Banjo  · 技术社区  · 7 年前

    我想更改数据中的值( dat )使用 dplyr

    这里是 First.name 应该改变。

    这应该在以下条件下完成:如果Company中的值有NA,如果Email的值有特定的字符串模式,我想输入值“DELETE”,否则First.name的原始值应该保留。

    library(dplyr)
    
    dat %>% 
        mutate(First.name = ifelse(
            is.na(Company) == T & 
                ifelse(
                    grepl("web|google|gmail|gmx|hotmail|yahoo|t-online|freenet|aol|netscape|kabelmail|onlinehome|outlook", Email), 
                    "DELETE", 
                    First.name
                )
        ))
    

    但我有个错误:

    Error in mutate_impl(.data, dots) : Evaluation error: operations are possible only for numeric, logical or complex types.
    
    0 回复  |  直到 7 年前