作者andrew43 (apan)
看板Statistics
标题Re: [程式] R软体 检查矩阵每列是否相同
时间Sat Dec 28 23:55:52 2013
※ 引述《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