我一直在使用这个大型数据集(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个空行。世界上到底发生了什么?这是一个问题,还是我可以 从子集中删除这些行并继续?我根本不想改变数据,但是如果所有这些都是空行正在生成我不太关心它,我只是不想无意中以我的方式改变数据不知道。任何见解都将不胜感激!
答案 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行。