を問題です:あなたは、その後nan
-nessのためにそれをテストする場合、文字列はFALSE
を返し、もちろんそれは「数ではありません」ですので、あなたのベクトルは、モードの文字です。最後の要素は文字列 "NaN"として解釈されました。 is.nan
を使用すると、ベクトルが数値である場合にのみ意味があります。文字ベクトルに値がないようにするには(回帰関数によって適切に処理されるように)、(引用符を付けずに)NA_character_
を使用します。
> tester1 <- c("2", "2", "3", "4", "2", "3", NA_character_)
> tester1
[1] "2" "2" "3" "4" "2" "3" NA
> is.na(tester1)
[1] FALSE FALSE FALSE FALSE FALSE FALSE TRUE
「NA」も「NaN」も文字ベクタには実際にはありません。最後の結果は意外かもしれません
tester1[tester1 == "NaN"] = "NA"
# but that would not really be a missing value either
# and it might screw up a factor variable anyway.
tester1[tester1=="NaN"] <- "NA"
Warning message:
In `[<-.factor`(`*tmp*`, tester1 == "NaN", value = "NA") :
invalid factor level, NAs generated
##########
tester1 <- factor(c("2", "2", "3", "4", "2", "3", NaN))
> tester1[tester1 =="NaN"] <- NA_character_
> tester1
[1] 2 2 3 4 2 3 <NA>
Levels: 2 3 4 NaN
:何らかの理由で、「NaNの」その後、あなただけの論理インデックスを使用できたであろうし、因子変数の値があった場合。残りの「NaN」レベルがありますが、要素のいずれも「NaN」ではありません。代わりに、 "NaN"だった要素がprintで示された本当の欠損値になりました。
あなたは見ているしたい場合がありますdata.tableパッケージからの 'setattr'も今日の私の質問でMatthewDowleの答えをチェックします:http://stackoverflow.com/questions/9463980/how-to-assign-within-apply-family –
この例は意味をなさない:あなたはどのようにキャラクターを使用することを提案しますか?線形回帰のデータ –
それは要因です。最後に、lm()が因子を扱うことができるかどうかチェックしました。私は例の周りに因子()を投げていたはずです。 – screechOwl