2017-12-02 12 views
0

私はdplyr case_whenを使用して変数を渡そうとしていますが、結果は期待どおりではありません。dplyr case_whenをプログラムで使用します

例:私は、変数を渡すしようとすると、

library(dplyr) 
mtcars %>% 
    mutate(cg = case_when(carb <= 2 ~ "low", 
         carb > 2 ~ "high")) ---this works 

しかし、それはすべて "低" と返し

var <- quo(carb) 
mtcars %>% 
    mutate(cg = case_when(!!var <= 2 ~ "low", 
        !!var > 2 ~ "high")) 

すべてのヘルプは高く評価されます!

答えて

2

これは、運用上の問題のためである、あなたは括弧を使用する必要があります。

quo_function <- function(df, var) { 
    df %>% 
    mutate(cg = case_when((!!var) <= 2 ~ "low", 
          (!!var) > 2 ~ "high")) 
} 

は、このポストthis postを見てください。

+0

私が知ることができる最良のことは、(!! var)がちょうどvarに置き換えられることです。 –

関連する問題