【发布时间】: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,为什么你(或一般人)不在那里发布答案作为答案而不是评论?当您仅发表评论时,无法关闭问题...其他人点击此问题以提供帮助