ifelse语句在dplyr中返回错误

时间:2017-07-22 09:50:59

标签: r dplyr

希望为t.test创建二进制指示符变量,我收到错误。

  fd <- fd %>%
    mutate(Con = ifelse(Intro1 != 2 | Intro1 != 4,0,
           ifelse(Intro2 != 2 | Intro2 != 4, 1,"NA")))

错误:不兼容的类型,期望数字向量

    > str(fd$Intro2 )
    int [1:6299] NA NA NA 3 NA NA NA NA NA NA ...
    > str(fd$Intro1 )
    int [1:6299] NA NA NA NA NA NA NA NA NA NA ...

是因为鼻子吗?我试过了

  fd <- fd %>%
        select(c(Intro1 , Intro2)) %>%
        na.omit  %>%
        mutate(Con = ifelse(Intro1 != 2 | Intro1 != 4,0,
             ifelse(Intro2 != 2 | Intro2 != 4, 1,"NA")))

基本上我想做的是遍历所有行,如果Intro1不是2或4则应用0,如果Intro2不是2或4则应用1。

1 个答案:

答案 0 :(得分:2)

使用dplyr $config = []; $config['base_url'] = '/mypath/'; class myclass{ public function myfunc(){ global $config; print_r($config); } } $obj = new myclass; $obj->myfunc(); 语法(可能比嵌套的case_when语句更具可读性):

ifelse