※ 引述《zzss (阿文)》之銘言:
: ------------------------------------------------------------------------
: TITLE請著名軟體類別
: 按ctrl+v可預覽 發文前請把灰色的註解刪除
: 可使用ctrl+y刪除一整行
: [軟體程式類別]:
: R
: [程式問題]:
: 想請問一下假設我現在有一個矩陣,我想檢查每一列是否有相同要怎麼做呢?
: 列如 1,2,3,5,7
: 2,2,2,2,2
: 1,2,3,5,7
: 那就是1,3列相同,如果我現在一次有10000*5的矩陣要檢查大概要怎做 謝謝
: [軟體熟悉度]:
: 低(1~3個月)
: 有試過用which和metch做 但怎麼試就是不對 希望有人可以幫個忙 謝謝
: -----------------------------------------------------------------------------
我用 loop 硬刻一個 20x5 的 matrix 做例子給你看。
因為是硬刻的,所以效能就別計較了。
例子中除了第一列之外,其它應該照用就可以了。
mat <- matrix(c(1:50, 1:50), 20, 5, byrow=T)
pairN <- dim(mat)[1] * (dim(mat)[1]-1) / 2L
pairIndex <- matrix(0L, pairN, 2)
i <- 1L
j <- 2L
k <- 1L
for(k in (1L):pairN) {
pairIndex[k, ] <- c(i, j)
if(j < dim(mat)[1]) {
j <- j + 1L
} else {
i <- i + 1L
j <- i + 1L
}
}
for(m in 1L:pairN){
if(all(mat[pairIndex[m,1],] == mat[pairIndex[m,2],])) {
cat(
"These two rows are Identical:",
pairIndex[m,],
"\n"
)
}
}
--
http://apansharing.blogspot.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.37.172