r - 基于行和列总和的 0 和 1 条件随机矩阵

标签 r matrix sum conditional-statements

我正在尝试在 R 中构建一个包含 1 和 0 的矩阵,但只有在满足行总和和列总和条件时才应生成矩阵。
例如:

1 0 1 1
0 1 1 0
1 1 1 1
1 0 1 0

我想用 rowsums = c(3, 2, 4, 2) 创建一个矩阵和 colsums = c(3, 2, 4, 2) .

最佳答案

可能有一个更优雅的解决方案,但这有效,运行时间不长,并且不需要任何包:

repeat {
  repeat {
    repeat {
      repeat {
        repeat {
          x <- sample(0:1, 4, replace = T)
          if(sum(x) == 3) {
            break
          }
        }
        repeat {
          y <- sample(0:1, 4, replace = T)
          if(sum(y) == 2) {
            break
          }
        }
        repeat {
          z <- sample(0:1, 4, replace = T)
          if(sum(z) == 4) {
            break
          }
        }
        repeat {
          u <- sample(0:1, 4, replace = T)
          if(sum(u) == 2) {
            break
          }
        }
        if(sum(x[1], y[1], z[1], u[1]) == 3) {
          break
        }
      }
      if(sum(x[2], y[2], z[2], u[2]) == 2) {
        break
      }
    }
    if(sum(x[3], y[3], z[3], u[3]) == 4) {
      break
    }
  }
  if(sum(x[4], y[4], z[4], u[4]) == 2) {
    print(matrix(c(x, y, z, u), 4, 4, byrow = T))
    break
  }
}

关于r - 基于行和列总和的 0 和 1 条件随机矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58478679/

相关文章:

C++ 逆矩阵

c++ - 获得 8 个源 __m256 vector 的水平和的 __m256 的最有效方法

r - 根据 R 中 V2 中设置的条件计算 V1 列中的值之和

r - 基于因子具有不同高填充颜色的 geom_tile 热图

r - 在函数中修改后,第一次调用时不显示 data.table

r - 有什么方法可以使 R 中散点图中的绘图点更加透明吗?

r - adehabitat 包的位置数据格式

mysql - 这个矩阵乘法在 SQL 中是如何工作的?

python - 优化遍历每个元素的 NumPy 矩阵总和

PHP:合并两个数组,第一个键不同,第二个键求和