2016-05-18 4 views
1

私は自分が持っているデータの散布図を作成しています。私は、散布図の機能を動作させることができていましたが、今はできませんし、私のエラーの内容を理解できません。私のデータの外観は、5つの値と、それぞれをクラスタに割り当てる列(この特定のケースではk-meansを使用しました)を持っています。グループ内のRの3Dスキャッタプロット関数

closedmi uncertin certknow sourknow justknow fit3.cluster 
1 3.166667 6.125  2.571429 4.500  3.375  1 
2 3.666667 4.250  3.428571 4.000  4.750  2 
3 1.833333 5.750  1.428571 3.375  2.125  2 
4 3.500000 4.500  1.857143 4.250  3.125  3 

最初の3つの主成分を使用して3次元でデータをプロットし、クラスタを表示しようとしています。ここで私のコードは、主要なコンポーネントを見つけるし、主なコンポーネントにクラスタの列を新しいデータフレームに添付します。

#Find the 5 principal components of the data matrix 
pcdf <- princomp(pre2, cor=T, score=T) 
pre4 <- data.frame(pcdf$scores, cluster=fit3$cluster) 

#Making a 3D plot of the Solution 
scatter3d(pre4$Comp.1, pre4$Comp.2, pre4$Comp.3, groups=pre4$cluster, 
      surface=FALSE, grid=FALSE, ellipsoid=TRUE) 

それでは、グループ化要因として、クラスタカラムを用いて個人をプロットするためにscatter3dを使用しようと、私はエラーで終わります。私はthis source正しい構文を取得するコードを使用していますが、私はまだエラーで終了します。 scatter3d.defaultで

エラー(PRE4 $ Comp.1、PRE4 $ Comp.2、PRE4 $ Comp.3、グループ= PRE4の$クラスター:変数グループが要因

でなければならないが、それそれはデータフレームにあり、pre4 $ clusterを使用して列を呼び出すことができます。表示されないフォーマットや構文エラーがありますか?怒っていますか?

これはちょうどうまく動作するようになりました。先週、今私はできません。私は視覚化を得るためにplot3dを使用することができますが、私はscatter3dを使って視覚化がうまくいくのが好きで、それを使用したいと考えています。

+2

。 'pre4 $ cluster < - as.factor(pre4 $ cluster)'を試しましたか? 'class(pre4 $ cluster)'の出力は何ですか? – RHertel

+1

ありがとう! 'as.factor(pre4 $ cluster)'は私が必要としていたものです。 'class(pre4 $ cluster)'の出力は「文字」なので、なぜ機能が動作していないのかが分かります。 –

答えて

0

これを試してみてください:要因に関するエラーメッセージを解決します

scatter3d(pre4$Comp.1, pre4$Comp.2, pre4$Comp.3, groups=as.factor(pre4$cluster), 
      surface=FALSE, grid=FALSE, ellipsoid=TRUE) 

。それを超えて、あなたの先導的なマイナーが明確であることを確かめてください。あなたが正しく、エラーメッセージ「...要因でなければならない」の意味を理解していないことを確認

enter image description here

関連する問題