子集数据创建NA行

时间:2016-09-13 18:38:01

标签: r

我一直在使用这个大型数据集(19个变量,包含整数,字符串和浮点数的任意组合,混合使用完整的观察结果和带有空变量的观察结果)。我已根据日期将它们子集化为不同的数据框,并且得到了一些意想不到的结果。到目前为止我的工作:

# reading in data; at this point there are no rows that are completely
# full of na values
     Data <- read.csv("Data.csv", stringsAsFactors = FALSE)

# removing data I don't want to look at; I'm sure this isn't the
# most efficient way to do this but it works
     Data2 <- Data[!(Data$Event.Clearance.Group=="TRAFFIC RELATED CALLS") & 
                      !(Data$Event.Clearance.Group=="FALSE ALARMS") &
                      !(Data$Event.Clearance.Group=="FALSE ALACAD") &
                      !(Data$Event.Clearance.Group=="HARBOR CALLS") &
                      !(Data$Event.Clearance.Group=="NULL"),]

# reformatting the date into new col to easily subset
     Data2$Date <- as.Date(as.character(Data2$Event.Clearance.Date), "%m/%d/%Y")

# Subsetting Data into years; after I do this the subsets suddenly have 
# tons of NA values. I do this for each year from 2011 - 2015
     Data2011 <- Data2[Data2$Date >= as.Date("2011-01-01") & 
                      Data2$Date <as.Date("2012-01-01"),]

更奇怪的是(或许不是)每个子集具有完全相同数量的NA行,尽管大小不同。每一个都有14198个空行。世界上到底发生了什么?这是一个问题,还是我可以 从子集中删除这些行并继续?我根本不想改变数据,但是如果所有这些都是空行正在生成我不太关心它,我只是不想无意中以我的方式改变数据不知道。任何见解都将不胜感激!

1 个答案:

答案 0 :(得分:2)

您的Data2 $ Date是否具有NA值? 结果是什么?

    sum(is.na(Data2$Date >= as.Date("2011-01-01") & 
                          Data2$Date <as.Date("2012-01-01")))

在一个应该只有TRUE或FALSE的向量中使用NA将导致你的答案中出现NA行。