我有一个有 4 列的大矩阵,包含归一化值(按列,平均值 ~ 0 和标准偏差 = 1)
我想看看矩阵中是否有模式,如果有,我想按模式对行进行聚类,按模式我的意思是给定行示例中的值
对于第 N 行
如果第 1 列中的值 < 第 2 列 < 第 3 列 < 第 4 列,那么假设是模式 1
基本上有 4^4 = 256 种可能的模式(理论上)
R中有没有办法做到这一点?
提前致谢
辐射
是的。(虽然不同排列的数量只有 24 = 4*3*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