[英]Trouble using case_when in dplyr
已經晚了,我一定犯了一個愚蠢的錯誤,但是為什么case_when
這種用法case_when
產生錯誤?
x <- 1:5
dplyr:::case_when(
x == 1 ~ TRUE,
x != 1 ~ print(x))
#> [1] 1 2 3 4 5
#> Error: must be a logical vector, not an integer vector
錯誤是因為case_when
期望所有RHS
評估為相同的類型。
在這里,在 OP 的嘗試中, TRUE
屬於"logical"
類,而x
屬於"integer"
類型,因此,它返回錯誤。 你可以試試,
x <- 1:5
dplyr::case_when(x == 1 ~ NA_integer_, x != 1 ~ x)
#[1] NA 2 3 4 5
或另一種方式:
dplyr::case_when(x != 1 ~ x, TRUE ~ NA_integer_)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.