Simetrik matrisin alt üçgenini oluşturan üç element üçgenini yakalamama ihtiyacım var. Tüm bu parçaları nasıl en soldaki sütun sırasına göre sırayla ve sonra bir sonraki sütunu sağa vb. Ben alt üçgenin iç numbe rof küçük üçgenler olduğunu biliyoruz:Alt üçgen içindeki üçgenleri yakala
n = x(x - 1)/2
where: x = nrow(mats[[i]])
İşte
ben değilim sırayla harfler (benim bu şekilde conceptualize daha kolaydır) ve elemanları ile üç matrisleri oluşturduk Aradığınız:
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"))
Nasıl olabilir:
FUN <- function(n) {
matrix(LETTERS[1:(n*n)], n)
}
mats <- lapply(3:5, FUN)
Yani bu yukarıda oluşturulan matrislerin her biri için (daha doğrusu çıkış biçimi daha kodunda koymak) almak istiyorum çıkışı t yapmak R'de kalırken görevini en hızlı şekilde mümkün mü?
faydalı olanı Peşinde olduğum bu görsel emin ama olabilir değil:
beklediğiniz o büyük test etmek için bir 5x5 matris midir? –
Hayır daha büyük olabilirdi (yine de çok daha büyük olacağından kuşkuluyum). –
@TylerRinker - Sadece 10K * 10K matrisinde bazı kıyaslama yaparken, R oturumumu kapatmaya zorlamak zorunda kaldım. 1K * 1K, birkaç saniye meselesiydi. Dışarıdaki insanların daha verimli uygulamalara sahip olup olmadıklarını merak ediyorum. – thelatemail