这不能太难,但是我被卡住了。
x1 <- c(1, 1, 1, 2)
x2 <- c(NA, NA, 1, 2, 3)
x3 <- c(NA, NA, NA)
我有三个可能的向量。它们可以没有NA
(x1
),一些NA
(x2
)或只有NA
(x3
)。我想要
仅在有一些个NA
时执行的操作,而只有NA
个时才执行的操作。
如何编写仅当某些元素为TRUE
时返回NA
的条件(而当全部或全部都不为FALSE
时返回NA
)。 / p>
所需的输出
答案 0 :(得分:2)
使用all
和is.na
all_NA <- function(x) ! (all(is.na(x)) | all(!is.na(x)))
all_NA(x3)
#[1] FALSE
all_NA(x2)
#[1] TRUE
all_NA(x1)
#[1] FALSE
或更简单的版本(在评论中类似于@David的解决方案)
all_NA <- function(x) any(is.na(x)) & !all(is.na(x))