我觉得我在这里遗漏了一些明显的东西,但我看不出有什么问题......
我所做的只是制作更大数据帧(all.score3
)的数据帧(all
)。较大的数据帧中没有所有NA行。
> class(all)
[1] "data.frame"
> table(all$Scoring, useNA = "always")
1 2 3 <NA>
774 772 768 0
> table(all$Resolution_Desc, useNA = "always")
No Response Resolved <NA>
293 962 1059
> class(all$Resolution_Desc)
[1] "character"
> class(all$Scoring)
[1] "numeric"
> all.score3 <- all[all$Scoring == 3 & all$Resolution_Desc == "Resolved", ]
> dim(all.score3)
[1] 677 11
> tail(all.score3)
ID1 ID2 Decile Scoring GroupNo Treat Result1 Result2 flag50 Resolution_Desc nout_2way
NA.362 <NA> NA NA NA <NA> <NA> NA NA NA <NA> NA
NA.363 <NA> NA NA NA <NA> <NA> NA NA NA <NA> NA
NA.364 <NA> NA NA NA <NA> <NA> NA NA NA <NA> NA
NA.365 <NA> NA NA NA <NA> <NA> NA NA NA <NA> NA
NA.366 <NA> NA NA NA <NA> <NA> NA NA NA <NA> NA
NA.367 <NA> NA NA NA <NA> <NA> NA NA NA <NA> NA
> cat("What ????")
What ????
它必须与all$Resolution_Desc == "Resolved"
过滤器有关,因为如果我只使用该过滤器,那么也会产生NA
行,但对于另一个过滤器则不然:
all.score3 <- all[all$Resolution_Desc == "Resolved", ]
为什么此操作会产生NA
行,这些行在较大的数据帧中不存在,并且根据行过滤器中的条件,不应该出现在结果数据帧中?
注意 - 我可以解决此问题,例如使用sqldf
(或可能使用subset
),但我仍然想了解这里发生了什么。我检查以确保我使用&
正确的方式,而不是使用&&
或其他东西,而我找到的资源似乎表明这应该是正确的......