2012-01-06 7 views
1

はRでプログラミングは、私は次のようなエラーに常時::入力 'データ'はダブル​​タイプではありませんか?

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

は、誰もがこのエラーが起こっている理由を説明していただけますが直面していますが、つまりエラーが発生する原因となるデータセット内の理由?

ここには実行しているコードがあります。私がロードしたパッケージは、クラスタ,psychおよびclvです。

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()経由数値行列である場合にチェックされています。数値でない場合、句は真であり、エラーは発生します。だから、あなたのdatahello.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)を出力します..関数は自動的に列と行の名前を追加します。同じことをするが完全な数値として行列を保存する他のfunctonはありますか? –

+0

なぜあなたは 'data(data.p)'をやっているのですか?データに行と列の名前があることを指定しています。 Rは結果のオブジェクトのrownames属性とcolnames属性(またはdimnames)として最初の行と列を取るでしょう( 'header = TRUE'と' row.names = 1'を意味する! Rがそれらを印刷しているからといって、それらがデータの一部であるとは限りません。私が尋ねたように、あなたの質問を編集して 'str(hello.data) 'の出力を表示してください。第二に、 'as.matrix()'の代わりに 'data.matrix()'を使うことができたと言いました。あなたを改善する方法に関するあなたの質問の2つのコメントに注意してください。 –

+0

ありがとう!私は問題を解決しました! –

関連する問題