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 でデータ フレームの列をベクトルに変換する方法