サーチ…


前書き

行列はデータを格納する

行列の作成

フードの下では、行列は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"

ベクトルと同様に、行列は変数として格納され、後で呼び出されます。行列の行と列には名前を付けることができます。あなたは関数rownamescolnamesを使ってこれらを見ることができます。以下に示すように、行と列は最初は名前を持たず、 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つのデータ型しかないことに注意することが重要です。複数のデータ型を持つ行列を指定しようとすると、データは上位のデータクラスに強制的に変換されます。

classis 、および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