【问题标题】:Stacked lists to one dataframe in RR中的一个数据框的堆叠列表
【发布时间】:2020-10-22 10:03:01
【问题描述】:

post1post2post3 等我已经提到了所有这些。所以,请不要将其标记为重复。

如下所示,我的列表有 3 个级别。 (列表中列表中的列表)。有些列表没有子列表(例如: visitsprocedures

我不知道如何正确创建列表列表。因此上面的截图。

我想将列表列表转换为数据框。但是,我无法将其正确转换为数据框。你能帮帮我吗?

以下是我尝试过的

df = do.call(rbind, dataFcases) # approach 1
df= as.data.frame(t(as.data.frame(dataFcases))) #approach 2
df <- data.frame(matrix(unlist(dataFcases), nrow=length(dataFcases), byrow=T)) #approach 3

我不知道如何为 3 个级别创建示例数据,因为我是 R 新手。您能帮我将其转换为数据框吗?

【问题讨论】:

  • this answer 有帮助吗?发布我们可以使用的示例数据将极大地影响潜在答案的有用性。
  • 不幸的是,我不知道如何为这种情况创建示例数据。您建议的上述答案使用了列名bt我可能事先不知道我的列名..
  • 但是不知道每个子列表的内容(结构)怎么写答案呢?
  • 如果您能弄清楚如何编写可重现的示例,您很可能会弄清楚如何进行请求的转换。
  • 您能解释一下为什么您在创建列表时不使用list 吗?列表可以包含不同的数据类型集合,而数据框用于行/列布局。

标签: r dataframe dplyr tidyverse purrr


【解决方案1】:

一个虚拟数据库:

for (i in c(1:6)){
  c1=paste0('a',i)
  c2=paste0('b',i)
  assign(paste0('df',i),tibble(!!c1 := rnorm(50), !!c2 := rnorm(50)))
}
L3=list(list(df1,df2,df3),list(df4,df5),df6)

这看起来像:

使用bind_rows

> L3 %>%
+   bind_rows(.id='df_identifier')
# A tibble: 300 x 13
   df_identifier      a1      b1    a2    b2    a3    b3    a4    b4    a5    b5    a6    b6
   <chr>           <dbl>   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
 1 1             -0.222  -0.744     NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
 2 1             -1.09   -0.307     NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
 3 1             -0.520   0.160     NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
 4 1              1.13    0.380     NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
 5 1             -1.26   -2.17      NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
 6 1              0.575   0.0486    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
 7 1              0.0447 -1.48      NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
 8 1             -0.735   0.730     NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
 9 1             -0.360  -0.143     NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
10 1              0.240  -0.245     NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
# ... with 290 more rows

【讨论】:

    猜你喜欢
    • 2021-06-17
    • 2021-04-11
    • 2020-11-12
    • 1970-01-01
    • 2019-06-09
    • 2020-03-28
    • 1970-01-01
    • 2021-06-07
    • 1970-01-01
    相关资源
    最近更新 更多