我正在尝试解密具有如下结构的列表res
:
我将如何将其转换为21(行)乘2(列)的数据帧?
我可以通过手动对21进行硬编码来做到这一点:
data.frame(matrix(unlist(res), nrow=21 ))
但是我想使用length(res)
不幸地返回1
因为它是一个列表,所以使用[[
对其进行索引以获得矩阵,然后转换为数据帧。
data.frame(res[[1]])
或与unlist
一起使用recursive = FALSE
data.frame(unlist(res[[1]], recursive = FALSE))
使用可复制的示例
res <- list(matrix(letters,ncol = 2))
data.frame(res[[1]])
# X1 X2
#1 a n
#2 b o
#3 c p
#4 d q
#5 e r
#6 f s
#7 g t
#8 h u
#9 i v
#10 j w
#11 k x
#12 l y
#13 m z
您也可以使用magrittr::extract2
,例如
res %>% magrittr::extract2(1)
## A tibble: 21 x 2
# V1 V2
# <chr> <chr>
# 1 Q E
# 2 L L
# 3 P X
# 4 R C
# 5 P H
# 6 G Y
# 7 K W
# 8 Z U
# 9 K D
#10 V K
## … with 11 more rows