获取列表的长度

问题描述 投票:0回答:1

我正在尝试解密具有如下结构的列表res

enter image description here

我将如何将其转换为21(行)乘2(列)的数据帧?

我可以通过手动对21进行硬编码来做到这一点:

data.frame(matrix(unlist(res), nrow=21 ))

但是我想使用length(res)不幸地返回1

enter image description here

r arraylist
1个回答
0
投票

因为它是一个列表,所以使用[[对其进行索引以获得矩阵,然后转换为数据帧。

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

0
投票

您也可以使用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
© www.soinside.com 2019 - 2024. All rights reserved.