対称行列の下の三角形を構成する3つの要素の三角形すべてを取得する必要があります。左端の列が下に向かって、次に右の列が下に行くという順序で、これらすべてのピースを取得する方法を考えることはできません。下の三角形の内側にあるnumberofミニ三角形は次のとおりです。
n = x(x - 1)/2
where: x = nrow(mats[[i]])
ここでは、文字(この方法で概念化する方が簡単です)と、探している順序の要素を使用して3つのマトリックスを作成しました。
FUN <- function(n) {
matrix(LETTERS[1:(n*n)], n)
}
mats <- lapply(3:5, FUN)
したがって、これは、上記で作成した各マトリックスについて取得したい出力です(出力形式ではなくコードに入れます)。
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"))
ベースRにとどまりながら、このタスクを可能な限り最速で実行するにはどうすればよいですか?
私が求めているもののこのビジュアルが役立つかどうかはわかりませんが、次のようになる可能性があります。