is.na不起作用,但是当我使用sapply(df, function(y) sum(length(which(is.na(y)))))
时,NA被考虑在内。
我想检测NA,以便对其进行标记并基于以下内容创建新列:如果NA在两列之一中存在,则标记该行。 I.E。
NA 1 1
1 1 0
1 NA 1
NA NA 1
一个选项是逻辑矩阵上的rowSums
df$flag <- rowSums(is.na(df)) > 0
或者如果由于某些奇怪的原因而NA
没有拾取is.na
元素,则为另一种选择
df$flag <- grepl("NA", do.call(paste0, df))
或者我们用lapply
遍历各列,应用is.na
创建逻辑矢量list
,然后将Reduce
应用于单个逻辑矢量
df$flag <- Reduce(`|`, lapply(df, is.na))