Ich versuche alle möglichen Zeichen einzufügen, die in einer beliebigen Diagonalen innerhalb einer N * N Matrix angeordnet sind.Fügen Sie alle möglichen Diagonalen einer n * n Matrix oder eines Datenrahmens ein.
Betrachten wir zum Beispiel die folgenden 3 X 3-Matrix:
#Create matrix, convert to character dataframe
matrix <- matrix(data=c('s','t','y','a','e','l','f','n','e'),nrow=3,ncol=3)
matrix <- as.data.frame(matrix)
for(i in 1:length(colnames(matrix))){
matrix[,i] <- as.character(matrix[,i])
}
In der Matrix oben habe ich die Diagonalen müssen einzufügen: "sehen", "schrullig", "EES" und "YEF". Ich kann diese in dem Datenrahmen mit dem folgenden Code finden:
diag <- paste(matrix[1,1],matrix[2,2],matrix[3,3],sep='')
diag1 <- paste(matrix[1,3],matrix[2,2],matrix[3,1],sep='')
diag2 <- paste(matrix[3,1],matrix[2,2],matrix[1,3],sep='')
diag3 <- paste(matrix[3,3],matrix[2,2],matrix[1,1],sep='')
Das Problem ist, dass ich mag, dies automatisieren, so dass es auf jeder N x N-Matrix arbeiten. (Ich schreibe eine Funktion, um die Diagonalen in jeder N X N-Matrix zu finden). Gibt es einen effizienten Weg, dies zu tun?
Um Ihre ursprünglichen Daten zu erstellen, tun 'Matrix <- data.frame (Matrix (c ('s', 't', 'y', 'a',‘ e ',' l ',' f ',' n ',' e '), ncol = 3), stringsAsFactors = FALSE) ' –
Wahrscheinlich möchte ich es nicht' matrix' nennen, da das auch ein Funktionsname ist. – Frank