2012-01-06 5 views
1

는 R 프로그래밍, 나는 continuosly 다음과 같은 오류 ::'데이터'입력이 이중 유형이 아닙니까?

Error in data.validity(data, "data") : Bad usage: input 'data' is not double type.

사람이 오류가 일어나는 이유를 설명시겠습니까 직면하고있어 동안, 즉 오류가 발생하는 원인이되는 데이터 집합의 이유?

다음은 내가 실행중인 코드입니다. 내가 적재 한 패키지는 클러스터, cychclv입니다.

data1 <- read.table(file='dataset.csv', sep=',', header=T, row.names=1) 
data1.p <- as.matrix(data1) 
hello.data <- data1.p[,1:15] 
agnes.mod <- agnes(hello.data) 
v.pred <- as.integer(cutree(agnes.mod,3)) # "cut" the tree 
scatt <- clv.Scatt(hello.data, v.pred) 

Error in data.validity(data, "data") : 
Bad usage: input 'data' is not double type. 
+1

등이 무엇인지 설명하지 않은 것처럼이 감각 (간단한 숫자로 명목 또는 순서 변수 치료)를 만드는 여부

는 불분명하다 더 많은 정보를 얻으십시오. 이 오류가 발생하는 코드는 무엇입니까? 어떤 패키지를로드하고 있습니까? – joran

+3

재현 가능한 예를 제공해주십시오. 예를 들어 내 R 엔진에서 data.validity 함수를 알 수 없습니다 ... 참고 : http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

답변

3

에러를 제기 data.validity()의 핵심 부분이다

data = as.matrix(data) 
if(!is.double(data)) 
    stop(paste("Bad usage: input '", name, "' is not double type.", sep="")) 

data는 행렬로 변환하고 is.double() 통해 숫자 행렬이면 체크한다. 숫자가 아닌 경우 절은 true이고 오류가 발생합니다. 그렇다면 행렬로 변환 할 때 data (hello.data) 숫자가 아닌 이유는 무엇입니까? 데이터에 문자 변수가 있거나 요인이 있습니다. 요인이 있습니까?

str(hello.data) 

어떤 숫자가 아닌 변수가 거기에 있는가 봅니다? 문자 데이터를 가지고 있다면 제거하십시오. 당신이 요소를 가지고 있다면, data.validity()data.matrix()을 통해 강제 할 수 있지만하지 않는 한, 다음 코드의 나머지 부분을 실행 hello.data을 만들어 줄 뒤에

hello.data <- data.matrix(hello.data) 

을 시도합니다. 당신이 재현 예를 제공하거나 데이터가 아무도 할 수있을 것 없습니다

+0

:: 감사 회신에 대한 .. .. 문제가 .. 내가 데이터 집합을 사용하여 매트릭스로 변환 할 때 ::> data1 <- read.table (file = 'data32.csv', sep = ',', header = T, row .names = 1)> data.p <-as.matrix (data1) whenevr 데이터 (data.p)를 출력합니다 .. 함수가 자동으로 열과 행의 이름을 추가합니다. 그리고 똑같은 작업을 수행하지만 행렬을 완전히 숫자로 보존하는 다른 펑션이 있습니까? –

+0

왜'data (data.p)'를하고 있습니까? 데이터에 행과 열 이름이 있음을 지정하고 있습니다. R은 결과 객체의 rownames 및 colnames 속성 (또는 dimnames)으로 첫 번째 행과 열을 취하게됩니다 ('header = TRUE'와'row.names = 1'은이를 의미하므로!). R이 인쇄하기 만해도 데이터의 일부라는 것을 의미하지는 않습니다. 제가 질문 한대로'str (hello.data) '의 출력을 보여주기 위해 질문을 편집하십시오. 둘째,'as.matrix()'대신'data.matrix()'를 사용할 수 있다고 언급했습니다. 당신을 향상시키는 방법에 대한 귀하의 질문에 대한 두 가지 의견을 참고하십시오 Q. –

+0

감사합니다! 문제가 해결되었습니다! –

관련 문제