2012-06-27 3 views
1

저는 비교적 초보 사용자인데 klaR 패키지 내에서 partimat() 함수를 사용하여 선형 판별 분석을위한 결정 경계를 그려보고 있지만 동일한 오류가 발생합니다 . 나는 설명서에 따라 인수 여러 가지 방법을 inputing했지만, 다음과 같은 오류가 계속있다 :R : partimat 함수가 클래스를 인식하지 못합니다.

partimat.default 오류 (X, 그룹, ...) : 적어도 두 개의 클래스가 필요

을 여기서 I는 주어진 한 입력의 예이다 : 내 데이터 테이블의 클래스를 포함하는 설명 변수 및 2 열을 포함하는 (19)을 통해 컬럼 3 이름 "sources1"아래에로드

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를 문제없이이 데이터 세트에서 성공적으로 실행 했으므로 어떤 점이 잘못되었는지 잘 모르겠습니다. partimat.default 함수의 소스 코드에서

답변

2

getAnywhere(partimat.default) 그것은 아마도 당신이 요인 변수로하여 그룹화 열을 정의하지 않은 따라서

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

을 말한다. 당신이 시도한다면 summary(sources1[,2]) 당신은 무엇을 얻습니까? 이 요인이 아니라면,

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

또는 당신이 data 인수에서 이러한 변수 이름을 찾기 위해의 데이터 프레임을 지정으로 공식에 변수 이름의 각각에 "sources1$"을 제거하려고 2 방법을 시도해보십시오. 나는 즉, 일부 데이터를 포함 (효과적으로 두 번 dataframe을 지정하고이 추가 오류 메시지 나 재현 예를없이

"sources1$sources1$groups" 

보다는

"sources1$groups" 

을 위해, 예를 들어, 찾고있는 것 같아요 당신의 게시물) 정말 말하기 어렵습니다.

HTH

+0

감사합니다. 그룹화 열은 요인 변수로 정의되지 않았습니다. 이제 잘 작동합니다. – amforte

관련 문제