Rでデータ操作を行おうとしています。2つのデータフレームがあります。1つはトレーニングデータで、もう1つはテストデータです。すべてのデータはカテゴリであり、因子変数として保存されます。
データにいくつかのNAがあり、それらを「-1」に変換しようとしています。トレーニングデータに対して行うと、問題はありませんが、テストデータに対してはうまくいきません。
実行中のループ中に何かが値を変更しますが、何がわかりません。
これが前です:
> class(catTrain1[,"Cat_111"])
[1] "factor"
> class(catTest1[,"Cat_111"])
[1] "factor"
> table(catTrain1[,"Cat_111"])
1 2
726 25
> table(catTest1[,"Cat_111"])
0 1 2
1 503 15
ループは次のとおりです。
> for(i in 1:ncol(catTrain1)){
+ catTrain1[,i] <- as.factor(as.character(ifelse(is.na(catTrain1[,i]), "-1", catTrain1[,i])))
+ }
> for(i in 1:ncol(catTest1)){
+ catTest1[,i] <- as.factor(as.character(ifelse(is.na(catTest1[,i]), "-1", catTest1[,i])))
+ }
後は次のとおりです。
> table(catTrain1[,"Cat_111"])
1 2
726 25
> table(catTest1[,"Cat_111"])
1 2 3
1 503 15
文字->数値変換で1つシフトアップするのを見てきましたが、特にデータフレーム/ループの1つだけで、なぜこれが発生しているのか理解できません。
助言がありますか?