当参数可能为空时 R 中的语句

And statements in R when argument possibly empty

我想制作一个单行条件语句来检查向量 (X) 是否恰好有一个值,该值没有丢失。我曾希望这会奏效:

(length(X) == 1) & !is.na(X)

但是 R 无论如何都会计算“AND”的两个语句,因此如果 X 为 NULL 或长度为零,这将不起作用。我目前执行此检查的方式非常丑陋

if (length(X) != 1) {FALSE}
else if (is.na(X)) {FALSE}
else {TRUE}

只需使用 && 而不是 & 即可解决您的问题。

x <- c()
(length(x) == 1) && !is.na(x)

[1] FALSE

x <- NULL
(length(x) == 1) && !is.na(x)

[1] FALSE