R の行列関数: 列の作成、印刷、追加、スライス

R の行列関数

R の行列関数は、m 行、n 列の 2 次元配列です。 つまり、R プログラミングにおける行列は、同じデータ型を持つ XNUMX つ以上のベクトルの組み合わせです。

注意: R の行列関数を使用して XNUMX 次元以上の配列を作成することができます。

R の行列関数

R で行列を作成する方法

関数 matrix() を使用して行列を作成できます。以下は、3 つの引数を取る R で行列を作成する関数です。

matrix(data, nrow, ncol, byrow = FALSE)

引数:

  • データ: R が行列の行と列に配置する要素のコレクション \
  • ナロウ: 行の数
  • ncol: 列の数
  • 投稿者: 行は左から右に埋められます。 行列を列で埋めたい場合、つまり値を上から下まで埋めたい場合は、`byrow = FALSE` (デフォルト値) を使用します。

5 から 2 までの一連の数値を使用して 1 つの 10×XNUMX 行列を構築してみましょう。XNUMX つは byrow = TRUE、もう XNUMX つは byrow = FALSE で違いを確認します。

# Construct a matrix with 5 rows that contain the numbers 1 up to 10 and byrow =  TRUE 
matrix_a <-matrix(1:10, byrow = TRUE, nrow = 5)
matrix_a

出力:

R で行列を作成する

dim() を使用して行列の次元を出力します

ここで、dim() を使用して R の行列の次元を出力しましょう。 dim() を使用して R で行列を出力する構文は次のとおりです。

# Print dimension of the matrix with dim()
dim(matrix_a)

出力:

## [1] 5 2

5から1までの数字を含む10行の行列を作成し、byrow = FALSEとする。

# Construct a matrix with 5 rows that contain the numbers 1 up to 10 and byrow =  FALSE
matrix_b <-matrix(1:10, byrow = FALSE, nrow = 5)
matrix_b

出力:

byrow = FALSE を含む 5 行の行列

dim() を使用して行列の次元を出力します

再度、dim() を使用して行列の次元を出力します。 以下は R 印刷行列次元の構文です。

# Print dimension of the matrix with dim()
dim(matrix_b)

出力:

## [1] 5 2

注意: コマンド matrix_b <-matrix(1:10, byrow = FALSE, ncol = 2) を使用すると、上記と同じ効果が得られます。

ncol を使用して 4×3 行列を作成することもできます。 R は 3 つの列を作成し、行を上から下に埋めます。 例を確認してください

matrix_c <-matrix(1:12, byrow = FALSE, ncol = 3)
matrix_c

出力:

##       [,1] [,2] [,3]
## [1,]    1    5    9
## [2,]    2    6   10
## [3,]    3    7   11
## [4,]    4    8   12

例:

dim(matrix_c)

出力:

## [1] 4 3

cbind() を使用して行列に列を追加する

cbind() コマンドを使用して行列 R に列を追加できます。 cbind() は列バインディングを意味します。cbind() は指定された数の行列または列を連結できます。 たとえば、前の例では 5×2 行列を作成しました。 5 番目の列を連結し、次元が 3×XNUMX であることを確認します。

例:

# concatenate c(1:5) to the matrix_a
matrix_a1 <- cbind(matrix_a, c(1:5))
# Check the dimension
dim(matrix_a1)

出力:

## [1] 5 3

例:

matrix_a1

出力

##       [,1] [,2] [,3]
## [1,]    1    2    1
## [2,]    3    4    2
## [3,]    5    6    3
## [4,]    7    8    4
## [5,]    9   10    5

例:

行列 R に列を複数回追加することもできます。 matrix_a2 行列の次の数値シーケンスを見てみましょう。 R の新しい行列の次元は 4×6 で、数値は 1 ~ 24 になります。

matrix_a2 <-matrix(13:24, byrow = FALSE, ncol = 3)

出力:

##      [,1] [,2] [,3]
## [1,]   13   17   21
## [2,]   14   18   22
## [3,]   15   19   23
## [4,]   16   20   24

例:

matrix_c <-matrix(1:12, byrow = FALSE, ncol = 3)		
matrix_d <- cbind(matrix_a2, matrix_c)
dim(matrix_d)

出力:

## [1] 4 6

注意: Cbind 作業では、R の行列の行数は等しくなければなりません

cbind() は列を連結し、rbind() は行を追加します。 matrix_c 行列に 5 行を追加して、次元が 3×XNUMX であることを確認してみましょう。

matrix_c <-matrix(1:12, byrow = FALSE, ncol = 3)
# Create a vector of 3 columns
add_row <- c(1:3)
# Append to the matrix
matrix_c <- rbind(matrix_c, add_row)
# Check the dimension
dim(matrix_c)

出力:

## [1] 5 3

行列をスライスする

行列から XNUMX つまたは複数の要素を選択できます。 Rプログラミング 角括弧 [ ] を使用します。ここでスライスが登場します。

具体的な例を挙げますと、以下の通りです。

  • matrix_c[1,2] は XNUMX 行 XNUMX 列目の要素を選択します。
  • math_c[1:3,2:3] は、行 1、2、3 と列 2、3、XNUMX のデータを含む R スライス行列になります。
  • matrix_c[,1] は、最初の列のすべての要素を選択します。
  • matrix_c[1,] は、最初の行のすべての要素を選択します。

上記のコードで得られる出力は次のとおりです

行列をスライスする