在关联矩阵中查找相同模式的行索引

时间:2015-02-20 07:11:23

标签: r matrix

我有一个关联矩阵(0-1矩阵),在那里重复行。

我需要找到哪些行具有相同的模式。

例如

如果我的矩阵如下

   [,1] [,2] [,3]
[1,]    1    0    1
[2,]    1    0    1
[3,]    1    1    1
[4,]    1    1    1
[5,]    1    1    0

然后输出

排号。 1,2和3,4和5分别表现出相同的图案。

我可以使用检查数据框来完成此操作。条件。但我相信有一个优雅的解决方案。

修改

预期结果:

假设输出是一个列表' a'然后上面的结果例如应该是这样的:

> a
[[1]]
 [1] 1 2
[[2]]
[1] 3 4
[[3]]
 [1] 5 

1 个答案:

答案 0 :(得分:0)

你可以尝试

 indx <- do.call(paste, as.data.frame(m))
 setNames(split(seq_along(indx),factor(indx, unique(indx))), NULL)
 #[[1]]
 #[1] 1 2

 #[[2]]
 #[1] 3 4

 #[[3]]
 #[1] 5

数据

 m <- structure(c(1L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 
 1L, 0L), .Dim = c(5L, 3L))