2012-04-25 6 views
0

の行列にパターンを検出するために、私は私があるかどうかを確認したいR:どの行

(〜0、標準偏差= 1を意味し、カラムによって)正規化された値を含む、4列の大きな行列を有しますIは、所与の行の例行の

の値Nを意味するパターンでマトリクス状にパターンが、そしてもしそう私は、パターンで行をクラスタ化したい

場合、列1 <カラム2 <カラム3の値<列4次にパターン1とする。

基本的に4^4 = 256の可能なパターンがあります(理論上)

これを行うにはRがありますか?事前に

おかげ

ラッド

答えて

3

はい。 (異なる置換の数は24 = 4 * 3 * 2であるにもかかわらず、1つの値が選択された後は3つの可能な第2の値しかなく、2番目の値が指定された後にはさらに2つの順序が残る)。order関数が適用されるそれぞれの行には1,2,3,4個の順列が必要です:

mtx <- matrix(rnorm(10000), ncol=4) 
res <- apply(mtx, 1, function(x) paste(order(x), collapse=".") ) 

> table(res)[1:10] 
> table(res) 
res 
1.2.3.4 1.2.4.3 1.3.2.4 1.3.4.2 1.4.2.3 1.4.3.2 
    98  112  95  120  114  118 
2.1.3.4 2.1.4.3 2.3.1.4 2.3.4.1 2.4.1.3 2.4.3.1 
    101  114  105  102  104  122 
3.1.2.4 3.1.4.2 3.2.1.4 3.2.4.1 3.4.1.2 3.4.2.1 
    105  82  107  90  97  86 
4.1.2.3 4.1.3.2 4.2.1.3 4.2.3.1 4.3.1.2 4.3.2.1 
    99  93  100  108  118  110 
+0

列1 =列2などとなる可能性があるので、3つの比較のそれぞれに2つの可能性があります(>明らかにdoesn考慮する必要があります)、4 * 3 * 2 * 2^3 = 192の順列を与えますか?それとも、脳のおならがありますか? – BenBarnes

+0

興味深い点BenBarnes – Rad

+0

数字が実線上にある場合、余分な可能性の確率尺度を除いて測定値ゼロがあります。 :-) –