2017-08-31 5 views
2

Rは私のデータセットのNAを認識できないという事実に戸惑いますdailydailyの迅速な検査にはNAのは、変数OBLIGOR_IDに存在しないことを信じるように1を招くことがあります。Rは私のデータセットのNAを認識できません

しかし
class(daily) 
# "data.frame" 

table(is.na(daily$OBLIGOR_ID)) 
# FALSE 
# 207775 

、1はADJUSTED_ORR 62512であるすべてのそれらの観測のためのOBLIGOR_ID年代を描く場合、1はその

を見つけるだろう
daily[daily$ADJUSTED_ORR==62512,c('OBLIGOR_ID')] 

# [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 
# [60] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 
# [119] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 
# [178] NA NA NA NA NA NA NA 

is.na(daily[daily$ADJUSTED_ORR==62512,c('OBLIGOR_ID')]) 

# [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE 
# [36] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE 
# [71] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE 
# [106] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE 
# [141] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE 
# [176] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE 

+3

があるときは、(DATの$ ADJUSTED_ORRの== 62512)、」[毎日( 'is.naを試すことができますOBLIGOR_ID ']) ' – Wen

+0

それは"論理(0) "を返します –

+0

私の答えを確認してください.. – Wen

答えて

2

サンプルデータ

PIN <- c("case1", "case2", "case3", "case4", "case5") 
STAMP_1 <- c(1, 1, 1, 1, 1) 
STAMP_2 <- c(NA, 1, 1, NA, 1) 
STAMP_3 <- c(1, NA, 1, 1, NA) 
STAMP_4 <- c(NA, NA, 1, 1, NA) 
STAMP_5 <- c(1, NA, NA, 1, NA) 
dat <- data.frame(PIN, STAMP_1, STAMP_2, STAMP_3, STAMP_4, STAMP_5) 
dat 
    PIN STAMP_1 STAMP_2 STAMP_3 STAMP_4 STAMP_5 
1 case1  1  NA  1  NA  1 
2 case2  1  1  NA  NA  NA 
3 case3  1  1  1  1  NA 
4 case4  1  NA  1  1  1 
5 case5  1  1  NA  NA  NA 

以下の例を試すことができる可能性が高いです。

dat[dat$STAMP_2==1,'STAMP_3'] 
[1] NA NA 1 NA NA 

フィルタの正しい方法NA

ベースR

dat[which(dat$STAMP_2==1),'STAMP_3'] 
    [1] NA 1 NA 

または

subset(dat, STAMP_2 ==1, select=c('STAMP_3'))

STAMP_3 
2  NA 
3  1 
5  NA 
0

これが原因そのADJUSTED_ORRにNA値が含まれている、あなたはあなたのケースで

df <- data.frame(a = NA, b = 1:100) 
df[df$a==1,] 
関連する問題