在if_else()
函数中dplyr
,它要求if:TRUE和if:FALSE元素属于同一个类.
我希望NA
从我的if_else()
发言中回复.
但是,例如
if_else(mtcars$cyl > 5, NA, 1)
Run Code Online (Sandbox Code Playgroud)
回报
错误:
false
类型'double'不是'逻辑'
因为简单地读入NA
是合乎逻辑的,1是数字(双重).
包裹as.numeric()
周围的NA
正常工作:例如,
if_else(mtcars$cyl > 5, as.numeric(NA), 1)
Run Code Online (Sandbox Code Playgroud)
回报
1 NA NA 1 NA NA NA NA 1 1 NA NA NA NA NA NA NA NA 1 1 1 1 NA NA NA NA 1 1 1 NA NA NA 1
正如我所希望的那样.
但这感觉有点傻/不必要.是否有更好的输入方式NA
作为" 数字NA
"而不是像这样包装?
NB这仅适用于严格的dplyr::if_else
不是base::ifelse
.