ID EN
Miscellaneous

diag

R Base 3.6.2 🇮🇩 Bahasa Indonesia

Ekstrak atau ganti diagonal suatu matriks, atau buatlah matriks diagonal.

Syntax

R
diag(x = 1, nrow, ncol, names = TRUE)
diag(x) <- value

Arguments

Parameter Deskripsi
x a matrix, vector or 1D array, or missing.
nrow, ncol optional dimensions for the result when x is not a matrix.
names (when x is a matrix) logical indicating if the resulting vector, the diagonal of x, should inherit names from dimnames(x) if available.
value either a single value or a vector of length equal to that of the current diagonal. Should be of a mode which can be coerced to that of x.

Return Value

Jika x adalah matriks maka diag(x) mengembalikan diagonal x. Vektor yang dihasilkan akan memiliki nama jika matriks x memiliki nama kolom dan baris yang cocok. Formulir penggantian menetapkan diagonal matriks x ke nilai yang diberikan. Dalam semua kasus lain, nilainya adalah matriks diagonal dengan n baris baris dan n kolom kolom (jika ncol tidak diberikan, matriksnya persegi). Di sini nrow diambil dari argumen jika ditentukan, jika tidak disimpulkan dari x: jika itu adalah vektor (atau larik 1D) dengan panjang dua atau lebih, maka panjangnya

Details

diag memiliki empat kegunaan berbeda: x adalah matriks, ketika ia mengekstrak diagonal. x hilang dan sekarang ditentukan, ia mengembalikan matriks identitas. x adalah skalar (vektor panjang satu) dan satu-satunya argumen, ia mengembalikan matriks identitas persegi dengan ukuran yang diberikan oleh skalar. x adalah vektor 'numerik' (kompleks, numerik, bilangan bulat, logis, atau mentah), dengan panjang minimal 2 atau terdapat argumen lebih lanjut. Ini mengembalikan matriks dengan entri diagonal dan nol di luar diagonal yang diberikan. Merupakan kesalahan untuk menentukan nrow atau ncol pada kasus pertama.

Contoh

Example
R
# NOT RUN {
dim(diag(3))
diag(10, 3, 4) # guess what?
all(diag(1:3) == {m <- matrix(0,3,3); diag(m) <- 1:3; m})

## other "numeric"-like diagonal matrices :
diag(c(1i,2i))    # complex
diag(TRUE, 3)     # logical
diag(as.raw(1:3)) # raw
(D2 <- diag(2:1, 4)); typeof(D2) # "integer"

require(stats)
## diag(<var-cov-matrix>) = variances
diag(var(M <- cbind(X = 1:5, Y = rnorm(5))))
#-> vector with names "X" and "Y"
rownames(M) <- c(colnames(M), rep("", 3))
M; diag(M) #  named as well
diag(M, names = FALSE) # w/o names
# }

See Also

upper.tri lower.tri matrix.