【发布时间】:2021-03-26 00:57:29
【问题描述】:
我已经看到几个围绕这个问题的问题,但似乎没有一个直接解决这个问题。
我在数据框列中有字符数据,一些值为NA。 if_else() 帮助文件示例演示它将把 NA 保留为 NA,除非使用 missing 参数另外指定。
但是,在我的情况下,它将NA 视为满足false 参数标准,并以这种方式返回。这是预期的行为吗?是因为使用字符数据吗?我我能够从带有整数数据的帮助文件代码中看到预期的行为。
我查了str(my_df$test_vector),是字符数据,不是因子数据。
提前感谢论坛大师。
例子:
> test_vector <- c("1dose", "2dose", "yes", "no", "undecided", NA) # data as it appears in my dataframe
> is.na(test_vector) # behaves as expected
[1] FALSE FALSE FALSE FALSE FALSE TRUE
> if_else(test_vector %in% c("1dose", "2dose", "yes"), "yes", "no") # does not behave as expected
[1] "yes" "yes" "yes" "no" "no" "no"
> if_else(test_vector %in% c("1dose", "2dose", "yes"), "yes", "no", NA_character_) # also unexpected
[1] "yes" "yes" "yes" "no" "no" "no"
【问题讨论】: