如何在 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中将数据框列转换为向量

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注