2017-04-06 7 views
0

。それは「< NA>」

+0

'CWM $ V1 [is.na(CWM $ V1)] < - 9'。 '?is.na'を参照してください。 –

+0

condititionのために 'is.na(cwm $ v1)'を試してみませんか? – Aramis7d

+0

問題はそれがで、NAでないようです - is.na関数はの値を変更していません。 –

答えて

2

シンボルでまだ変数を私に戻っています<NA>で欠落している要因の値:

> factor(c("a",NA,"b")) 
[1] a <NA> b 
Levels: a b 

したがって、あなたは、単にすべての欠損値のためのようなis.naを使用することができますが、あなたの可能性これを参照してください:

> v1 <- factor(c("a", NA,"b")) 
> v1[is.na(v1)] <- 9 
> v1 
[1] a <NA> b 
Levels: a b 
Warning message: 
In `[<-.factor`(`*tmp*`, is.na(v1), value = 9) : 
    invalid factor level, NA generated 

理由は簡単です:9はその要素のレベルではありません。したがって、これを行うには、因子に変換する前にこの置換えを行う必要があります:

> v2 <- c("a",NA,"b") 
> v2[is.na(v2)] <- 9 
> v1 <- factor(v2) 
> v1 
[1] a 9 b 
Levels: 9 a b 

ここでは別のレベルとして9があります。これを望まない場合は、最初に因子を使うべきではありません。だから、最初のcharacterに変換、あなたが要因から始める場合:

> v1 <- factor(c("a", NA,"b")) 
> v1 <- as.character(v1) 
> v1[is.na(v1)] <- 9 
> v1 
[1] "a" "9" "b" 
関連する問題