case_when()
をdplyr
で返すと、NA
と非NA
の値が返されますか? 、私はcyl >= 6
のすべての値について1
たい、dplyr :: case_whenは、NAsと非NAsの混在を返すことができますか?
例:
は、私は1つのステートメントに応じてNA
を返すように頼むときは、しかし、別のステートメントに応じて、非NA
値は、それが評価エラーをスローします単独でcyl < 6
> library("dplyr")
> mtcars %>% mutate(thing = case_when(cyl >= 6 ~ 1, cyl < 6 ~ NA))
Error in mutate_impl(.data, dots) : Evaluation error: must be type double, not logical.
の値についてNA
、文の両方が細かい評価します。
この問題は、すべてのNAが返されるように要求されても、NA
と非NA
の混合ではありません。
例えば:cyl >= 6
> mtcars %>% mutate(thing = case_when(cyl >= 6 ~ NA))
cyl thing
1 6 NA
2 6 NA
3 4 NA
のすべての値の戻りNA
がよさそうです。
> mtcars %>% mutate(thing = case_when(cyl >= 6 ~ NA, cyl < 6 ~ NA))
cyl thing
1 6 NA
2 6 NA
3 4 NA
クール。
> mtcars[1:3,] %>% mutate(thing = case_when(cyl == 6 ~ 1, cyl < 6 ~ NA, cyl > 6 ~ NA))
Error in mutate_impl(.data, dots) : Evaluation error: must be type double, not logical.
クールではありません。
注意:例で返される項目は、式の末尾にあるmtcars[1:3,]
から%>% select(cyl, thing)
までです。
うん、私はすべてのRHSSがに評価しなければならない」を参照してください*今TFMに12回*を読んだ後に同じ種類のベクターです。 –