为什么是NA';在对data.frame';尺寸一致且无NA'的s;s
我用来子集这些数据的项目中没有NA值。基本R索引的框架,但在我的结果中几乎有一半变成了NA。尺寸是一致的,我检查了每一个匹配的部分,以确保它在隔离工作 对数据进行采样以便使用为什么是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
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_datalength(pred$Enroll.in.term.1)
# 31386
x您测试了表(is.na(pred))
因此pred不是na,但是您没有测试您正在使用的pred$Enroll.in.term.1
。您从表(is.na(pred$Enroll.in.term.1))
中得到了什么?@G5WFALSE 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