我有一个大的矩阵(500行乘30000列)的零和1。为此,我附加了包含0和1之间的值的行501。如果行501中的值是>对于列x,我想要将所有零替换为1,将所有零替换为该列中的零。我已经实现了以下代码:
for(x in 1:30000){
if (matrix[501,x] > 0.5){
for(y in 1:500){
matrix[matrix[y,x]==1] <- 0
matrix[matrix[y,x]==0] <- 1
}
}
}
matrix
此代码连续运行,我在停止之前已经过了2个小时,所以我没有要报告的错误消息。我该如何清理它?我究竟做错了什么?
答案 0 :(得分:4)
你可以翻转0 - &gt; 1和1 - &gt;使用x <- 1 - x
一起使用0。
所以你会有
toFlip <- matrix[501,] > 0.5
matrix[1:500, toFlip] <- 1 - matrix[1:500,toFlip]