r - subset用法 - 在数据框的选定列中包含NA(缺失)值的行的子集



csv dataframe (4)

NA是R中的特殊值,不要将NA值与“NA”字符串混淆。 根据导入数据的方式,“NA”和“NULL”单元格可以是各种类型(默认行为是将“NA”字符串转换为NA值,并使“NULL”字符串保持原样)。

如果使用read.table()或read.csv(),则应考虑使用“na.strings”参数来执行干净数据导入,并始终使用实际R NA值。

例如,在“NULL”和“NA”两种情况下工作:

DF <- read.csv("file.csv", na.strings=c("NA", "NULL"))
new_DF <- subset(DF, is.na(DF$Var2))

https://ffff65535.com

我们有一个CSV文件的数据框。 数据帧DF具有包含观测值的列和包含测量日期的列( VaR2 )。 如果未记录日期,则CSV文件包含缺失数据的值NA

Var1  Var2 
10   2010/01/01
20   NA
30   2010/03/01

我们希望使用subset命令来定义新的数据帧new_DF ,使其仅包含来自列( VaR2 )的NA'值的行。 在给出的示例中,只有第2行将包含在新DF

命令

new_DF<-subset(DF,DF$Var2=="NA") 

不起作用,结果数据框没有行条目。

如果在原始CSV文件中,Value NANULL交换,则相同的命令会产生所需的结果: new_DF<-subset(DF,DF$Var2=="NULL")

如果对于字符串,在原始CSV文件中提供值NA ,我该如何使用此方法?


使用NA数据打印所有行:

tmp <- data.frame(c(1,2,3),c(4,NA,5));
tmp[round(which(is.na(tmp))/ncol(tmp)),]

尝试改变这个:

new_DF<-dplyr::filter(DF,is.na(Var2)) 

当行中的所有值都不是NA时, complete.casesTRUE

DF[!complete.cases(DF), ]




na