既存の行列のf
特定の要素 ( ) に変数を書き込みたいと思います。が要因であると仮定しましょう:index
m
f
f <- factor(c(3,3,0,3,0))
m <- matrix(NA, 10, 1)
index <- c(1,4,5,8,9)
使用する
m[index] <- f
m
ラベル ('1' と '2') を入れますが、元の値 ('0' と '3')には入れないため、望ましい結果が得られません。したがって、私は使用しました
m[index] <- as.numeric(levels(f))[f]
代わりに、これはうまく機能します。
しかし、私の状況でf
は、常に要因ではなく、数値のようにすることもできます
f <- c(3.43, 4.29, 5.39, 7.01, 7.15)
私はそれをチェックする必要がありますか?
if ( is.factor(f) ) {
m[index] <- as.numeric(levels(f))[f]
} else {
m[index] <- f
}
または、のタイプに関係なく、の「真の」値f
を matrixに入れる「普遍的な」方法はありますか?m
f
前もって感謝します!
PS: 背景は、によってトレーニングされた SVM モデルはwheref
の結果であり、分類モデル (その後は因子) または回帰モデル (その後は数値) のいずれかになります。私はモデルのタイプを知っていますが、上記の if 節は私にはやや不便に思えます。f <- predict(mymodel, Xnew)
model
model <- svm(Xtrain, Ytrain)
f
f