でこれはなぜですか? y <- min(dim(x))
?diag()を返すこの関数の説明はR
このコードを試してみたところ、c <- vector()
となっていました(c <- x[i,i]
がループしていました)。ループ内でc[i]
を使用するとエラーが表示されます)。
x <- matrix(1:25, 5,5)
> diag(x)
> n <- function(x){
y <- min(dim(x))
c <- vector()
for(i in 1:y){
c[i] <- x[i,i]
}
c
}
> n(x)
これは私があなたの答えから視覚化したもので、最小次元は最初[1,1]、次に[2,2]、[3,3]、[4,4]、[5,5]です。なぜ[1,1]の後の次の小さい方が[1,2]ではないのですか? – zizu
@zizu更新された回答を確認します。私は行列がどのように働くか、そして[R](https://stat.ethz.ch/R-manual/R-devel/library/base/html/matrix)を見れば参考になると思います。 html) – Aramis7d
seq_along(x)のiが指定され、x [i、i]が行列の対角要素を選んだ場合、c [i] <-x [i、i]は対角を生成しませんか?私はこれを知っている:x [i、i]のエラー:範囲外の添え字 - これは長さ25がダイアゴナル5の長さと一致しないためですか? – zizu