R - Macierze
Macierze to obiekty R, w których elementy są rozmieszczone w dwuwymiarowym układzie prostokątnym. Zawierają elementy tego samego typu atomowego. Chociaż możemy stworzyć macierz zawierającą tylko znaki lub tylko wartości logiczne, nie są one zbyt przydatne. Używamy macierzy zawierających elementy numeryczne do wykorzystania w obliczeniach matematycznych.
Matrix jest tworzony przy użyciu matrix() funkcjonować.
Składnia
Podstawowa składnia tworzenia macierzy w R to -
matrix(data, nrow, ncol, byrow, dimnames)
Poniżej znajduje się opis użytych parametrów -
data jest wektorem wejściowym, który staje się elementami danych macierzy.
nrow to liczba wierszy do utworzenia.
ncol to liczba kolumn do utworzenia.
byrowto logiczna wskazówka. Jeśli PRAWDA, to elementy wektora wejściowego są uporządkowane według wierszy.
dimname to nazwy przypisane do wierszy i kolumn.
Przykład
Utwórz macierz przyjmując wektor liczb jako dane wejściowe.
# Elements are arranged sequentially by row.
M <- matrix(c(3:14), nrow = 4, byrow = TRUE)
print(M)
# Elements are arranged sequentially by column.
N <- matrix(c(3:14), nrow = 4, byrow = FALSE)
print(N)
# Define the column and row names.
rownames = c("row1", "row2", "row3", "row4")
colnames = c("col1", "col2", "col3")
P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames))
print(P)
Kiedy wykonujemy powyższy kod, daje on następujący wynik -
[,1] [,2] [,3]
[1,] 3 4 5
[2,] 6 7 8
[3,] 9 10 11
[4,] 12 13 14
[,1] [,2] [,3]
[1,] 3 7 11
[2,] 4 8 12
[3,] 5 9 13
[4,] 6 10 14
col1 col2 col3
row1 3 4 5
row2 6 7 8
row3 9 10 11
row4 12 13 14
Dostęp do elementów macierzy
Dostęp do elementów macierzy można uzyskać za pomocą indeksu kolumn i wierszy elementu. Rozważamy macierz P powyżej, aby znaleźć określone elementy poniżej.
# Define the column and row names.
rownames = c("row1", "row2", "row3", "row4")
colnames = c("col1", "col2", "col3")
# Create the matrix.
P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames))
# Access the element at 3rd column and 1st row.
print(P[1,3])
# Access the element at 2nd column and 4th row.
print(P[4,2])
# Access only the 2nd row.
print(P[2,])
# Access only the 3rd column.
print(P[,3])
Kiedy wykonujemy powyższy kod, daje on następujący wynik -
[1] 5
[1] 13
col1 col2 col3
6 7 8
row1 row2 row3 row4
5 8 11 14
Obliczenia macierzowe
Na macierzach wykonywane są różne operacje matematyczne przy użyciu operatorów R. Wynikiem operacji jest również matryca.
Wymiary (liczba wierszy i kolumn) powinny być takie same dla macierzy biorących udział w operacji.
Dodawanie i odejmowanie macierzy
# Create two 2x3 matrices.
matrix1 <- matrix(c(3, 9, -1, 4, 2, 6), nrow = 2)
print(matrix1)
matrix2 <- matrix(c(5, 2, 0, 9, 3, 4), nrow = 2)
print(matrix2)
# Add the matrices.
result <- matrix1 + matrix2
cat("Result of addition","\n")
print(result)
# Subtract the matrices
result <- matrix1 - matrix2
cat("Result of subtraction","\n")
print(result)
Kiedy wykonujemy powyższy kod, daje on następujący wynik -
[,1] [,2] [,3]
[1,] 3 -1 2
[2,] 9 4 6
[,1] [,2] [,3]
[1,] 5 0 3
[2,] 2 9 4
Result of addition
[,1] [,2] [,3]
[1,] 8 -1 5
[2,] 11 13 10
Result of subtraction
[,1] [,2] [,3]
[1,] -2 -1 -1
[2,] 7 -5 2
Mnożenie i dzielenie macierzy
# Create two 2x3 matrices.
matrix1 <- matrix(c(3, 9, -1, 4, 2, 6), nrow = 2)
print(matrix1)
matrix2 <- matrix(c(5, 2, 0, 9, 3, 4), nrow = 2)
print(matrix2)
# Multiply the matrices.
result <- matrix1 * matrix2
cat("Result of multiplication","\n")
print(result)
# Divide the matrices
result <- matrix1 / matrix2
cat("Result of division","\n")
print(result)
Kiedy wykonujemy powyższy kod, daje on następujący wynik -
[,1] [,2] [,3]
[1,] 3 -1 2
[2,] 9 4 6
[,1] [,2] [,3]
[1,] 5 0 3
[2,] 2 9 4
Result of multiplication
[,1] [,2] [,3]
[1,] 15 0 6
[2,] 18 36 24
Result of division
[,1] [,2] [,3]
[1,] 0.6 -Inf 0.6666667
[2,] 4.5 0.4444444 1.5000000