2017-03-17 8 views
2

行列Sの各行にはそれぞれが含まれているかどうかをチェックするループを書く必要があります 1,2,3、...、9 次の行列の出力は1つのTRUE次のようになります。数字のそれぞれがに表示された場合、このように私がチェックすることはできません、行列Sの各行が含まれているかどうかをチェックするループ

for (i in 1:9) { 
    sudoku <- c(1:9 %in% S[i,]) 
    print (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 
) 

私のコードは、現時点では以下のようになります。それぞれの行。あなたはこの問題をどのように乗り越えることができるのか考えていますか?

+5

「すべて(適用、(1)、機能(x)すべて(1:9%in%x)))」のような意味ですか? – nrussell

+0

多分 'すべて(apply(S、1、table)== 1)' –

+0

大きな助けnrussell、はい、それです!どうもありがとう。 –

答えて

1
all(apply(S, 1, is.element, el=c(1:9))) 
関連する問題