用于多列缺失值的新变量

时间:2019-06-07 00:38:36

标签: r

我正在尝试查看R是否具有类似于Stata的命令。在Stata中,!mi(a,b,c,...)命令创建一个新变量,如果指示的变量没有缺失数据,则指示1/0。 1 =变量x中没有丢失数据,0 =变量x之一中缺少数据。

我正在寻找一个简单的代码,因为有时我大约有15-20个变量(主要用于标记逐列表删除的情况)。这需要更多的工作,但是我指定列名而不是使用:标记。我找到的选项会创建一个新的数据框(na.omit),但我想保留所有情况。

我知道ifelse可以使用以下方法完成此任务:

df$test <- ifelse(!is.na(df$ID) & !is.na(df$STATUS), 1,0)

我想知道是否还有另一种方法可以减少代码,而无需一遍又一遍地编写“!is.na(df $)”。也许是$ global代码(类似于Stata)?

2 个答案:

答案 0 :(得分:3)

您应该可以使用complete.cases

df$test <- as.numeric(complete.cases(df))

答案 1 :(得分:0)

您也可以使用rowSums

df$test <- as.numeric(rowSums(is.na(df)) == 0)