需要获取NA来标记(is.na不起作用)

问题描述 投票:1回答:1

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
r na
1个回答
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))
© www.soinside.com 2019 - 2024. All rights reserved.