2012-06-27 61 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