如何替换矩阵的指定列中的元素?

时间:2017-05-07 21:17:29

标签: r

我有一个大的矩阵(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个小时,所以我没有要报告的错误消息。我该如何清理它?我究竟做错了什么?

1 个答案:

答案 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]