R でリストを行列に変換する方法 (例付き)


次の構文を使用して、R でリストを行列に変換できます。

 #convert list to matrix (by row)
matrix(unlist(my_list), ncol= 3 , byrow= TRUE )

#convert list to matrix (by column)
matrix(unlist(my_list), ncol= 3 )

次の例は、この構文を実際に使用する方法を示しています。

例 1: リストを行列に変換する (行単位)

次のコードは、R でリストを行列 (行単位) に変換する方法を示しています。

 #create list
my_list <- list(1:3, 4:6, 7:9, 10:12, 13:15)

#view list
my_list

[[1]]
[1] 1 2 3

[[2]]
[1] 4 5 6

[[3]]
[1] 7 8 9

[[4]]
[1] 10 11 12

[[5]]
[1] 13 14 15

#convert list to matrix
matrix(unlist(my_list), ncol= 3 , byrow= TRUE )

     [,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
[4,] 10 11 12
[5,] 13 14 15

結果は、5 行 3 列の行列になります。

例 2: リストを行列に変換する (列単位)

次のコードは、R でリストを行列 (列単位) に変換する方法を示しています。

 #create list
my_list <- list(1:5, 6:10, 11:15)

#view list
my_list

[[1]]
[1] 1 2 3 4 5

[[2]]
[1] 6 7 8 9 10

[[3]]
[1] 11 12 13 14 15

#convert list to matrix
matrix(unlist(my_list), ncol= 3 )

     [,1] [,2] [,3]
[1,] 1 6 11
[2,] 2 7 12
[3,] 3 8 13
[4,] 4 9 14
[5,] 5 10 15

結果は、5 行 3 列の行列になります。

リストを配列に変換する場合の注意点

リスト内の各位置の要素数が同じでない行列にリストを変換しようとすると、R はエラーをスローすることに注意してください。

次の例は、この点を示しています。

 #create list
my_list <- list(1:5, 6:10, 11:13)

#view list
my_list

[[1]]
[1] 1 2 3 4 5

[[2]]
[1] 6 7 8 9 10

[[3]]
[1] 11 12 13

#attempt to convert list to matrix
matrix(unlist(my_list), ncol= 3 )

Warning message:
In matrix(unlist(my_list), ncol = 3):
  data length [13] is not a sub-multiple or multiple of the number of rows [5]

追加リソース

次のチュートリアルでは、R で他の一般的な変換を実行する方法について説明します。

R でリストをベクトルに変換する方法
Rで行列をベクトルに変換する方法
R でデータ フレームの列をベクトルに変換する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です