2017-06-11 7 views
1

このS4クラスを強制するための方法は、APResultは(apclusterから作成されていない)epxectedとおりAPClusterエラー(データ):クラスタ化されていない入力データ・フレーム(FCI)を使用してベクター

> apclr2q02 <- apcluster(negDistMat(r=2), fci) 
> show(apclr2q02) 

APResult object 

Number of samples  = 1045 
Number of iterations = 826 
Input preference  = -22.6498 
Sum of similarities = -1603.52 
Sum of preferences = -1336.338 
Net similarity  = -2939.858 
Number of clusters = 59 

オンラインdocumentationでは、aggExCluster()は入力としてクラスタ化するデータか、以前のクラスタリング結果(ExClustまたはAPResult)のいずれかを受け入れることができます。クラスタ化されていないデータ(FCI)にaggExClusterを実行して、コードが期待どおりに動作:

> aglomr2 <- aggExCluster(negDistMat(r=2), fci) 
> aglomr2 

AggExResult object 

Number of samples   = 1045 
Maximum number of clusters = 1045 

結果は系統樹の形式でプロットすることができ、すべてが順調です。しかし、APResultが入力として(apclr2q02)上記で得られた使用すると、次のエラーが返されます。私は、入力としてAPResultオブジェクトと間違っているかもしれないものについて

> aglomr2 <- aggExCluster(negDistMat(r=2), apclr2q02) 
Error in as.vector(data) : 
    no method for coercing this S4 class to a vector 

任意の提案を?あなたは「ExClust」または「APResult」オブジェクトとして与えられた前回のクラスタリング結果の一番上にaggExCluster()を使用したい場合は

答えて

0

は、これらのオブジェクトは、「x」引数として渡されると、さらに、類似度行列をする必要がありますする必要があります利用可能です。ここではあなたの例に基づいて自己完結型のコードスニペットがある(apcluster()から返されたオブジェクトが「apres」類似度行列を含んでいることに注意してください):あなたは類似度行列から開始する場合は

cl1 <- cbind(rnorm(50,0.2,0.05),rnorm(50,0.8,0.06)) 
cl2 <- cbind(rnorm(50,0.7,0.08),rnorm(50,0.3,0.05)) 
x <- rbind(cl1,cl2) 

apres <- apcluster(negDistMat(r=2), x, q=0.7) 
aggExCluster(x=apres) 

、することができますいずれか、すなわち、「APResult」オブジェクトに

sim <- negDistMat(r=2, x) 
apres <- apcluster(sim, q=0.7, includeSim=TRUE) 
aggExCluster(x=apres) 

apcluster()は、類似度行列で呼び出された場合、マトリックスは「includeSim=TRUE」で上書きすることができ、デフォルトで結果オブジェクトに含まれていない)

それを含みます 01類似の機能と「 APResult」は、元が含まれていないため、動作しません「 APResult 『オブジェクトで aggExCluster()を呼び出す

sim <- negDistMat(r=2, x) 
apres <- apcluster(sim, q=0.7) 
aggExCluster(x=apres, s=sim) 

また、あなたはまた、引数』 s」を介して類似度行列を指定することができますデータであるため、aggExCluster()はクラスタリングに必要な類似性行列を計算することができません。代わりに、aggExCluster() が類似関数である引数 's'で呼び出された場合、引数 'x'には生データが含まれることが予想され、サブセットテーブルオブジェクトに変換しようとします。そのため、このエラーメッセージが表示されます。

+0

Ausgezeichnet、vielen Dank! (素晴らしい、多くのありがとう!)それは私のデータでもうまくいった。 – Dennis

関連する問題