Sto tentando di incollare tutti i possibili caratteri disposti in qualsiasi diagonale all'interno di una matrice N * N.Incolla tutte le possibili diagonali di una matrice n * n o dataframe
Ad esempio, si consideri il seguente matrice 3 x 3:
#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])
}
Nella matrice sopra devo incollare le diagonali: "vedere", "fey", "SEO" e "YEF". Posso trovare questi nel dataframe con il seguente codice:
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='')
Il problema è che voglio automatizzare questo modo che funziona su qualsiasi matrice N x N. (Sto scrivendo una funzione per trovare le diagonali in una matrice N X N). C'è un modo efficace per farlo?
Al fine di creare i dati originali solo fare 'matrice <- data.frame (matrice (c ('s', 't', 'y', 'a',' e ',' l ',' f ',' n ',' e '), ncol = 3), stringsAsFactors = FALSE) ' –
Probabilmente non si vuole chiamarlo' matrix', poiché è anche un nome di funzione. – Frank