带select()的case_when()函数

时间:2019-08-09 16:31:55

标签: r dplyr

我想使用case_when()函数选择一些列

df %>%
   {
      case_when(
         .$ID == 1 ~ select(., Level, Time),
         .$ID == 2 ~ select(., Time, Upgrade),
         TRUE ~ select(., Level, Time, Upgrade)
      )
   }

但是,如果我使用if()语句-它会起作用:

df %>%
   {
      if(.$ID == 1) {
      select(., Level, Time)
      } else if(.$ID == 2) {
      select(., Time, Upgrade)
      } else {
      select(., Level, Time, Upgrade)
      }
   }

我得到一个错误,即在select()语句之后的TRUE ~的列数必须等于在select()之后的.$ID == 1的列数。

在这种情况下如何使用case_when()函数?

0 个答案:

没有答案