gpt4 book ai didi

r - 在 R 中指定 NA 的类(对于 if_else、dplyr)

转载 作者:行者123 更新时间:2023-12-04 12:06:38 25 4
gpt4 key购买 nike

if_else()函数在 dplyr , it requires that both the if:TRUE and if:FALSE elements are of the same class .

我要回NA来自我的 if_else()陈述。

但是例如

if_else(mtcars$cyl > 5, NA, 1)

返回

Error: false has type 'double' not 'logical'



因为只需阅读 NA是逻辑的,1 是数字( double )。

包装 as.numeric()周围 NA工作正常:例如
if_else(mtcars$cyl > 5, as.numeric(NA), 1)

返回

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”而不是像这样包装它?

注意这仅适用于更严格的 dplyr::if_else不是 base::ifelse .

最佳答案

你可以使用 NA_real_

if_else(mtcars$cyl > 5, NA_real_, 1)

关于r - 在 R 中指定 NA 的类(对于 if_else、dplyr),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45974660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com