如何在一次运行中将每个命名的 tibble 保存为列表中的单独 tibble 或数据帧

2024-01-31

这个问题与此相关如何在 R 中循环数据框中的列、应用扩展并创建新的数据框? https://stackoverflow.com/questions/73436305/how-to-loop-over-the-columns-in-a-dataframe-apply-spread-and-create-a-new-data

我有一个包含 3 个小标题的列表:

$Peter
# A tibble: 3 x 4
  date       Peter   Ben  Mary
  <chr>      <dbl> <dbl> <dbl>
1 2020-03-30   0.4  NA    NA  
2 2020-10-14  NA     0.6  NA  
3 2020-12-06  NA    NA     0.7

$Ben
# A tibble: 3 x 4
  date       Peter   Ben  Mary
  <chr>      <dbl> <dbl> <dbl>
1 2020-03-30   0.5  NA    NA  
2 2020-10-14  NA     0.4  NA  
3 2020-12-06  NA    NA     0.2

$Mary
# A tibble: 3 x 4
  date       Peter   Ben  Mary
  <chr>      <dbl> <dbl> <dbl>
1 2020-03-30   0.2  NA    NA  
2 2020-10-14  NA     0.1  NA  
3 2020-12-06  NA    NA     0.9

mylistdf <- list(Peter = structure(list(date = c("2020-03-30", "2020-10-14", 
"2020-12-06"), Peter = c(0.4, NA, NA), Ben = c(NA, 0.6, NA), 
    Mary = c(NA, NA, 0.7)), row.names = c(NA, -3L), class = c("tbl_df", 
"tbl", "data.frame")), Ben = structure(list(date = c("2020-03-30", 
"2020-10-14", "2020-12-06"), Peter = c(0.5, NA, NA), Ben = c(NA, 
0.4, NA), Mary = c(NA, NA, 0.2)), row.names = c(NA, -3L), class = c("tbl_df", 
"tbl", "data.frame")), Mary = structure(list(date = c("2020-03-30", 
"2020-10-14", "2020-12-06"), Peter = c(0.2, NA, NA), Ben = c(NA, 
0.1, NA), Mary = c(NA, NA, 0.9)), row.names = c(NA, -3L), class = c("tbl_df", 
"tbl", "data.frame")))

如何在全局环境中将这 3 个 tibbles 保存为自己的 tibbles:

预期输出是将 Peter、Ben、Mary 作为全局环境中的标题或数据框。

我知道我们可以这样做:

Peter <- mylistdf$Peter
Ben <- mylistdf$Ben
Mary <- mylistdf$Mary

但我希望用地图或类似的东西一次性完成它:

mylistdf %>%
  .....

你可以这样做:

list2env(mylistdf,envir = .GlobalEnv)

但通常建议将框架/小标题保留在原始列表中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在一次运行中将每个命名的 tibble 保存为列表中的单独 tibble 或数据帧 的相关文章

随机推荐