2017-03-17 59 views
2

我需要編寫一個循環,檢查矩陣S的每一行是否包含每個的數字1,2,3,...,9 以下矩陣輸出應該是一個單一的TRUE:一個循環,檢查矩陣S的每一行是否包含

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) 
} 

然而,這樣如果每個號碼的出現在我無法檢查每一行。你有什麼想法,我可以繼續解決這個問題嗎?

+5

你的意思是像'all(應用(S,1,函數(x)全部(1:9%in%x))''? – nrussell

+0

也許'all(apply(S,1,table)== 1)' –

+0

大幫忙nrussell,是的,就是這樣!非常感謝。 –

回答

1
all(apply(S, 1, is.element, el=c(1:9))) 
相關問題