【发布时间】:2018-04-23 13:00:22
【问题描述】:
我有一个这样的列表:
lst <-
list(structure(c("1", "[19]"), .Dim = 1:2), structure("1", .Dim = c(1L,
1L)), structure(c("1", "[41]"), .Dim = 1:2), structure(c("1",
"[55]"), .Dim = 1:2), structure(c("1", "[56]"), .Dim = 1:2),
structure(c("1", "[84]"), .Dim = 1:2))
如何将其转换为 tibble 以便:
rslt <-
tibble(batch=c(1,1,1,1,1,1), id=c("[19]","","[41]","[55]","[56]","[84]"))
# A tibble: 6 x 2
batch id
<dbl> <chr>
1 1 [19]
2 1
3 1 [41]
4 1 [55]
5 1 [56]
6 1 [84]
【问题讨论】:
-
试试
library(tidyverse);lst %>% map_df(~as.data.frame(.)) -
它有效,但我收到以下警告消息:
1: In bind_rows_(x, .id) : Unequal factor levels: coercing to character 2: In bind_rows_(x, .id) : binding character and factor vector, coercing into character vector 3: In bind_rows_(x, .id) : binding character and factor vector, coercing into character vector... -
我忘了添加
stringsAsFactors=FALSE,即lst %>% map_df(~as.data.frame(., stringsAsFactors=FALSE)) -
我在下面发布了一个带有解释的解决方案
-
仅供参考,这里的列表不是嵌套的