case_when 与 numeric(0) 的行为

Mal*_*lta 6 r case-when dplyr

我无法理解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,这是正确的。我想念什么?