R 子集行包含特定列的NAs

R 子集行包含特定列的NAs,r,subset,na,R,Subset,Na,我有一个数据集,对于某些行中的某些列(例如,“USD.Price/l”)包含NA(在这些行中的其他列中没有NAs),我尝试将这些包含NA的行子集化。我有两种方法:1)df[df$`USD.Price/l`=“NA”,2)df[is.NA(df$`USD.Price/l`),]第二种方法工作得很好,但是为什么第一种方法给出了正确的大小,但是每行和每列中的所有NAs都正确?问题还在于=在有NA元素的地方返回NA。另外,NA未引用“NA” v1 <- c(NA, 3, 5, NA) v1 ==

我有一个数据集,对于某些行中的某些列(例如,“USD.Price/l”)包含NA(在这些行中的其他列中没有NAs),我尝试将这些包含NA的行子集化。我有两种方法:1)
df[df$`USD.Price/l`=“NA”,2)
df[is.NA(df$`USD.Price/l`),]
第二种方法工作得很好,但是为什么第一种方法给出了正确的大小,但是每行和每列中的所有NAs都正确?

问题还在于
=
在有
NA
元素的地方返回
NA
。另外,
NA
未引用
“NA”

v1 <- c(NA, 3, 5, NA)
v1 == "NA"
#[1]    NA FALSE FALSE    NA
正确的方法是
is.na
complete.cases

complete.cases(v1) # returns TRUE where there are no NA
#[1] FALSE  TRUE  TRUE FALSE

is.na(v1) # returns TRUE where there are NAs
#[1]  TRUE FALSE FALSE  TRUE
如果我们选中

缺失值(NA)和NaN值被认为是不可比的,甚至与它们本身不可比,因此涉及它们的比较总是会导致NA。比较字符串时,如果其中一个字符串在当前排序规则区域设置中无效,也会导致缺少值

complete.cases(v1) # returns TRUE where there are no NA
#[1] FALSE  TRUE  TRUE FALSE

is.na(v1) # returns TRUE where there are NAs
#[1]  TRUE FALSE FALSE  TRUE