我有一个矩阵,其中一些列相等。 我想得到那些列的索引。 例如,如果矩阵是
0 2 1 0 2
0 1 5 0 1
4 9 4 4 9
6 14 -1 6 14
我希望获得c(1, 4)
和c(2, 5)
之类的内容
我有一个聪明的方法来实现这个目标吗?
答案 0 :(得分:1)
这是一个解决方案:
identical_idx <- function(i) which(colSums(mm[,i]==mm) ==nrow(mm))
unique(lapply(seq_len(ncol(mm)-1),identical_idx))
[[1]]
V1 V4
1 4
[[2]]
V2 V5
2 5
[[3]]
V3
3
答案 1 :(得分:1)
使用dist
:
mat <- read.table(text="0 2 1 0 2
0 1 5 0 1
4 9 4 4 9
6 14 -1 6 14")
mat <- as.matrix(mat)
d <- as.matrix(dist(t(mat)))
d[lower.tri(d, diag = TRUE)] <- NA
which(d < 1e-16, arr.ind = TRUE)
# row col
#V1 1 4
#V2 2 5