2012-06-27 370 views
1

我是一個相對新手的用戶,我試圖使用klaR包中的partimat()函數來繪製線性判別分析的決策邊界,但我一直遇到相同的錯誤。我試圖按照說明書輸入查詢的參數多種不同的方式,但不斷收到以下錯誤:R:partimat函數不能識別我的類

錯誤partimat.default(X,分組,...):需要 至少兩類

這裏是我給定了輸入的一個例子:其中,我的數據表是通過19裝載在以名稱「sources1」與列3含有解釋變量和第2列含有類

partimat(sources1[,c(3:19)],grouping=sources1[,2],method="lda",prec=100)

。我也嘗試通過輸入公式這樣做:

partimat(sources1$group~sources1$tio2+sources1$v+sources1$cr+sources1$co+sources1$ni+sources1$rb+sources1$sr+sources1$y+sources1$zr+sources1$nb+sources1$la+sources1$gd+sources1$yb+sources1$hf+sources1$ta+sources1$th+sources1$u,data=sources1)

這些是列標題。

我已經在這個相同的數據集上成功運行LDA而沒有問題,所以我不太確定什麼是錯的。

回答

2

從partimat.default功能的源代碼getAnywhere(partimat.default)它因此,各國

if (nlevels(grouping) < 2) 
    stop("at least two classes required") 

也許你還沒有定義的分組列作爲一個因素變量。如果你嘗試summary(sources1[,2])你會得到什麼?如果它不是一個因素,儘量

sources1[,2] <- as.factor(sources1[,2]) 

或者方法2嘗試在公式中取消對每個變量名的"sources1$"你指定要尋找在data爭論這些變量名的數據幀。我想你有效地指定數據幀兩次,它可能會尋找,例如,對於

"sources1$sources1$groups" 

不是

"sources1$groups" 

如果沒有進一步的錯誤信息或重複的例子(即包括在一些數據的後)很難說真的。

HTH

+0

謝謝,分組列沒有定義爲因子變量。現在工作正常。 – amforte