Mam potrzebę chwycić wszystkie trzy trójkąty elementów, które tworzą dolny trójkąt symetrycznej macierzy. Nie mogę wymyślić, jak złapać wszystkie te elementy w kolejności od lewej do lewej kolumny, a następnie następnej kolumny po prawej i tak dalej. Wiem, że numbe ROF mini trójkąty wewnątrz dolnego trójkąta jest:Złap trójkąty w niższym trójkącie
n = x(x - 1)/2
where: x = nrow(mats[[i]])
Tu Utworzyliśmy trzy matryce z liter (to jest mi łatwiej konceptualizacji ten sposób) i elementami w kolejności jestem Szukam:
FUN <- function(n) {
matrix(LETTERS[1:(n*n)], n)
}
mats <- lapply(3:5, FUN)
Więc to jest wyjście Chciałbym dostać (I umieścić go w kodzie zamiast format) dla każdej z matryc stworzony powyżej:
list(c("B", "C", "F"))
list(c("B", "C", "G"), c("C", "D", "H"), c("G", "H", "L"))
list(c("B", "C", "H"), c("C", "D", "I"), c("D", "E", "J"),
c("H", "I", "N"), c("I", "J", "O"), c("N", "O", "T"))
Jak mogę czy t jego zadanie w najszybszy możliwy sposób podczas pobytu w bazie R?
Nie wiem, czy to wizualny, co jestem po to pomocne, ale mogą to być:
jest macierzą 5x5 największą że można oczekiwać, aby przetestować? –
Nie, nie może być większy (choć mam wielką wątpliwość, czy kiedykolwiek byłby znacznie większy). –
@ TylerRinker - Po prostu musiałem zamknąć sesję R podczas próby wykonania testu porównawczego na macierzy 10K * 10K. 1K * 1K to kwestia kilku sekund. Zastanawiam się, czy ludzie na zewnątrz mogą mieć bardziej wydajne wdrożenia. – thelatemail