首页 > 解决方案 > 当参数可能为空时,R 中的语句

问题描述

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

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

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

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

标签: rnull

解决方案


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

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

[1] FALSE

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

[1] FALSE

推荐阅读