我正在尝试查看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)?
答案 0 :(得分:3)
您应该可以使用complete.cases
df$test <- as.numeric(complete.cases(df))
答案 1 :(得分:0)
您也可以使用rowSums
:
df$test <- as.numeric(rowSums(is.na(df)) == 0)