我想將變量f
寫入現有矩陣m
的某些元素(index
)。假設f
是一個因素:因子,級別和原始值
f <- factor(c(3,3,0,3,0))
m <- matrix(NA, 10, 1)
index <- c(1,4,5,8,9)
使用
m[index] <- f
,因爲它使標籤沒有得到期望的結果(「1」和「2」)爲m
,但不是原來的值( '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
的「真實」值放入矩陣m
中,與f
的類型無關?
在此先感謝!
P.S .:背景是f
是f <- predict(mymodel, Xnew)
的結果,其中model
是由model <- svm(Xtrain, Ytrain)
培養了SVM模型,並且可以是是classfication模型(然後f
是因子)或迴歸模型(然後f
是數字)。我知道模型的類型,但上面的if子句對我來說似乎有點不方便。
你可以使用一個data.frame,而不是一個矩陣?數據類型在數據類型方面更加靈活,矩陣只接受字符或數字。 – 2012-01-10 09:57:57