サーチ…
前書き
行列はデータを格納する
行列の作成
フードの下では、行列は2次元の特別な種類のベクトルです。ベクトルと同様に、行列は1つのデータクラスしか持てません。下記のように、 matrix
関数を使用して行列を作成することができます。
matrix(data = 1:6, nrow = 2, ncol = 3)
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
ご覧のとおり、これは、1行から6行までの2行3列のすべての数値の行列を返します。 data
パラメータは、値のベクトルをとり、 nrow
マトリックスの行数を指定し、 ncol
列の数を指定します。慣例により、マトリックスはカラムによって充填される。デフォルト動作は、以下に示すようにbyrow
パラメータで変更できます。
matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
行列は数値である必要はありません。どのベクトルも行列に変換できます。例えば:
matrix(data = c(TRUE, TRUE, TRUE, FALSE, FALSE, FALSE), nrow = 3, ncol = 2)
## [,1] [,2]
## [1,] TRUE FALSE
## [2,] TRUE FALSE
## [3,] TRUE FALSE
matrix(data = c("a", "b", "c", "d", "e", "f"), nrow = 3, ncol = 2)
## [,1] [,2]
## [1,] "a" "d"
## [2,] "b" "e"
## [3,] "c" "f"
ベクトルと同様に、行列は変数として格納され、後で呼び出されます。行列の行と列には名前を付けることができます。あなたは関数rownames
とcolnames
を使ってこれらを見ることができます。以下に示すように、行と列は最初は名前を持たず、 NULL
で示されNULL
。ただし、値を割り当てることができます。
mat1 <- matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE)
rownames(mat1)
## NULL
colnames(mat1)
## NULL
rownames(mat1) <- c("Row 1", "Row 2")
colnames(mat1) <- c("Col 1", "Col 2", "Col 3")
mat1
## Col 1 Col 2 Col 3
## Row 1 1 2 3
## Row 2 4 5 6
ベクトルと同様に、行列には1つのデータ型しかないことに注意することが重要です。複数のデータ型を持つ行列を指定しようとすると、データは上位のデータクラスに強制的に変換されます。
class
、 is
、およびas
is
、クラス1のベクトルで使用されたのと同じ方法で、データ構造をチェックし強制するために使用することができます。
class(mat1)
## [1] "matrix"
is.matrix(mat1)
## [1] TRUE
as.vector(mat1)
## [1] 1 4 2 5 3 6
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow