为什么是NA';在对data.frame';尺寸一致且无NA'的s;s

为什么是NA';在对data.frame';尺寸一致且无NA'的s;s,r,R,我用来子集这些数据的项目中没有NA值。基本R索引的框架,但在我的结果中几乎有一半变成了NA。尺寸是一致的,我检查了每一个匹配的部分,以确保它在隔离工作 对数据进行采样以便使用dput()在这一个上不可行,因为它破坏了匹配,因此我将.RDS数据上载到GitHub: 要从GitHub下载文件,您可以克隆repo或单击文件,然后单击“下载”按钮。要克隆repo类型git克隆https://github.com/hack-r/stackoverflow_NA_question.git model_da

我用来子集这些数据的项目中没有NA值。基本R索引的框架,但在我的结果中几乎有一半变成了NA。尺寸是一致的,我检查了每一个匹配的部分,以确保它在隔离工作

对数据进行采样以便使用
dput()
在这一个上不可行,因为它破坏了匹配,因此我将.RDS数据上载到GitHub:

要从GitHub下载文件,您可以克隆repo或单击文件,然后单击“下载”按钮。要克隆repo类型
git克隆https://github.com/hack-r/stackoverflow_NA_question.git

model_data            <- readRDS("model_data.RDS")
StartDates.next3.prev <- readRDS("startDates.next3.prev.RDS")
pred                  <- readRDS("pred.RDS")

table(is.na(pred))
# FALSE 
# 156930

table(is.na(model_data$flag_prev))
# FALSE 
# 52716

nrow(pred) == length(model_data$flag_prev[model_data$flag_prev=="Y"])
# [1] TRUE

StartDates.next3.prev$Start_Date[1]
# [1] "2016-01-04"

table(model_data$matched_start_date[model_data$flag_prev=="Y"]==startDates.next3.prev$Start_Date[1])
# FALSE  TRUE 
# 21872  9514 


tmp <- pred$Enroll.in.term.1[model_data$flag_prev == "Y" &
                             model_data$matched_start_date ==
                             StartDates.next3.prev$Start_Date[1]]

table(is.na(tmp)) # Why are 4,130 NA??
# FALSE  TRUE 
# 5384  4130
model_data
length(pred$Enroll.in.term.1)
# 31386

x您测试了
表(is.na(pred))
因此pred不是na,但是您没有测试您正在使用的
pred$Enroll.in.term.1
。您从
表(is.na(pred$Enroll.in.term.1))
中得到了什么?@G5W
FALSE 31386
更新:我找到了解决方法,但仍希望了解问题。解决方法是首先将
model\u数据子集如下:
model\u数据
length(pred$Enroll.in.term.1)
# 31386

x <- model_data$flag_prev == "Y"
y <- model_data$matched_start_date ==  StartDates.next3.prev$Start_Date[1]

sum(which((x & y) == T) > 31386)
# 4130