R でリストをベクトルに変換する方法 (例付き)


次のいずれかの方法を使用して、R でリストをベクトルに変換できます。

 #use unlist() function
new_vector <- unlist(my_list, use. names = FALSE )

#use flatten_*() function from purrr library
new_vector <- purrr::flatten(my_list)

次の例では、次のリストを使用してこれらの各メソッドを実際に使用する方法を示します。

 #create list
my_list <- list(A = c(1, 2, 3),
                B = c(4, 5),
                C = 6)

#display list
my_list

$A
[1] 1 2 3

$B
[1] 4 5

$C
[1] 6

例 1: unlist() 関数を使用してリストをベクトルに変換する

次のコードは、 unlist()関数を使用してリストをベクトルに変換する方法を示しています。

 #convert list to vector
new_vector <- unlist(my_list)

#display vector
new_vector

A1 A2 A3 B1 B2 C 
 1 2 3 4 5 6 

use.names = FALSEを指定すると、ベクトルから名前を削除できることに注意してください。

 #convert list to vector
new_vector <- unlist(my_list, use. names = FALSE )

#display vector
new_vector

[1] 1 2 3 4 5 6

例 2: flatten_* 関数を使用してリストをベクトルに変換する

次のコードは、 purrrパッケージの flatten_* ファミリの関数を使用してリストをベクトルに変換する方法を示しています。

 library (purrr)

#convert list to vector
new_vector <- flatten_dbl(my_list)

#display vector
new_vector

[1] 1 2 3 4 5 6

flatten_dbl()関数は、具体的にはリストを double 型のベクトルに変換します。

flatten_chr()を使用して文字のリストを文字ベクトルに変換できることに注意してください。

 library (purrr) 

#define character list
my_char_list <- list(A = c('a', 'b', 'c'),
                     B = c('d', 'e'),
                     C = 'f')

#convert character list to character vector
new_char_vector <- flatten_chr(my_char_list)

#display vector
new_char_vector

[1] "a" "b" "c" "d" "e" "f"

flatten_* ファミリの関数の完全なリストについては、このページを参照してください。

注:非常に長いリストを操作している場合、 flatten_* 関数は R ベースの unlist() 関数よりも高速に動作します。

追加リソース

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

コメントを追加する

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