【问题标题】:a loop that checks whether each row of the matrix S contains检查矩阵 S 的每一行是否包含的循环
【发布时间】:2017-03-17 10:56:05
【问题描述】:

我需要编写一个循环来检查矩阵 S 的每一行是否包含 每个 数字 1,2,3,...,9 以下矩阵的输出应该是一个 TRUE:

S <- matrix(
    c(4,3,5,6,1,2,7,8,9,
    6,2,7,9,5,8,4,3,1,
    9,8,1,7,4,3,2,6,5,
    1,4,2,3,8,7,5,9,6,
    8,6,9,4,2,5,1,7,3,
    7,5,3,1,6,9,8,4,2,
    3,9,8,2,7,1,6,5,4,
    5,1,6,8,9,4,3,2,7,
    2,7,4,5,3,6,9,1,8), 
    9, 9, byrow = TRUE
)

目前我的代码如下所示:

for (i in 1:9) {
    sudoku <- c(1:9 %in% S[i,]) 
    print (TRUE)
}

但是,像这样我无法检查每个数字是否出现在每一行中。你有什么想法我可以继续解决这个问题吗?

【问题讨论】:

  • 你的意思是喜欢all(apply(S, 1, function(x) all(1:9 %in% x)))吗?
  • 也许all(apply(S,1,table) == 1)
  • 大帮助 nrussell,是的,就是这样!非常感谢。
  • @nrussell,为什么你(或一般人)不在那里发布答案作为答案而不是评论?当您仅发表评论时,无法关闭问题...其他人点击此问题以提供帮助

标签: r for-loop matrix


【解决方案1】:
all(apply(S, 1, is.element, el=c(1:9)))

【讨论】:

    猜你喜欢
    • 2020-06-08
    • 2016-09-06
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 2018-06-29
    相关资源
    最近更新 更多