我无法理解dplyr::case_when其工作原理。这里有这个非常简单的行:
library(tidyverse)
case_when(TRUE ~ 50,
FALSE ~ numeric(0))
Run Code Online (Sandbox Code Playgroud)
显然numeric(0),TRUE 是 TRUE,所以它应该发回 50。此外,FALSE 是 FALSE,所以它永远不应该发回 numeric(0)。如果我写的话我就没有问题:
case_when(TRUE ~ 50,
FALSE ~ NaN)
Run Code Online (Sandbox Code Playgroud)
我得到50,这是正确的。我想念什么?