R:partimat函数无法识别我的类

时间:2012-06-27 16:30:50

标签: r

我是一个相对新手的用户,我正在尝试使用klaR包中的partimat()函数来绘制线性判别分析的决策边界,但我一直遇到同样的错误。我已经尝试根据手册以多种不同方式输入参数,但不断收到以下错误:

partimat.default(x,分组,...)出错:   至少需要两个班级

以下是我给出的输入示例:

  

partimat(sources1 [,C(3:19)],分组= sources1 [2],方法= “LDA”,PREC = 100)

其中我的数据表以名称“sources1”加载,第3列到第19列包含解释变量,第2列包含类。我也尝试过这样输入公式:

  

partimat(sources1 $组〜sources1 $二氧化钛+ 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 $个+ sources1 $ U,数据= sources1)

这些是列标题。

我已成功在同一数据集上运行LDA而没有问题,所以我不太确定是什么问题。

1 个答案:

答案 0 :(得分:3)

从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