m = matrix(runif(100), ncol=10)
rownames(m) = LETTERS[1:10]
colnames(m) = rownames(m)
m
我得到一个矩阵,所以我想遍历每一行和每一行,我想比较我的行中的第一个元素与列中存在的所有元素
A B C D E F G `
A 0.2059746 0.93470523 0.4820801 0.8209463 0.47761962 0.91287592 0.3390729
B 0.1765568 0.21214252 0.5995658 0.6470602 0.86120948 0.29360337 0.8394404
所以我想将A的第一行与A,B,C,D,E,F,F进行比较检查所需的值(如果存在)然后打印索引或行和列名称。
which(m >0.8, arr.ind=TRUE)
我这样做但我想用for循环
任何帮助或建议都将受到高度赞赏
答案 0 :(得分:2)
这是怎么回事?
for (i in 1:nrow(m)) {
findrows <- which(m[i, ] > 0.8)
if (length(findrows) > 0) {
print(rownames(m[i, , drop = FALSE]))
}
}
要打印列,只需添加一行:
for (i in 1:nrow(m)) {
findrows <- which(m[i, ] > 0.8)
if (length(findrows) > 0) {
message("rows:")
print(rownames(m[i, , drop = FALSE]))
message("columns:")
print(colnames(m[, findrows, drop = FALSE]))
}
}