繼dplyr::case_when()
文檔中給出的例子:評價dplyr :: case_when()
x <- 1:50
case_when(x %% 35 == 0 ~ "fizz buzz",
x %% 5 == 0 ~ "fizz",
x %% 7 == 0 ~ "buzz",
TRUE ~ as.character(x))
我想到的是人數35
會產生"buzz"
但它產生"fizz buzz"
我的理由是,case_when()
評估板無論前一個是否爲真(因爲它確實評估TRUE ~ as.character(x)
這是最後一個),並且該35 %% 7
顯然是0.
我錯過了什麼?
這些語句按順序進行評估,任何與第一個語句相匹配的語句都會得到第一個結果,並且不會被後面的結果覆蓋。 – Marius
我仍然感到困惑,因爲爲什麼最後一條語句TRUE〜as.character(x)被評估。 – tictocchoc
有'x'值不能被35,5或7整除 - 所以在處理前3個語句後仍有值需要處理。如果您仍然感到困惑,您可以嘗試更詳細地解釋爲什麼您認爲應該發生其他事情? – Marius