【发布时间】:2012-04-26 06:11:06
【问题描述】:
我有一个有 4 列的大矩阵,包含归一化值(按列,均值 ~ 0 和标准差 = 1)
我想看看矩阵中是否有模式,如果是,我想按模式对行进行聚类,按模式我的意思是给定行示例中的值
对于第 N 行
如果第 1 列
基本上有 4^4 = 256 种可能的模式(理论上)
R 中有没有办法做到这一点?
提前致谢
辐射
【问题讨论】:
我有一个有 4 列的大矩阵,包含归一化值(按列,均值 ~ 0 和标准差 = 1)
我想看看矩阵中是否有模式,如果是,我想按模式对行进行聚类,按模式我的意思是给定行示例中的值
对于第 N 行
如果第 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
【讨论】:
table(res)["1.2.3.4"] 从我的样本中返回 98。