将嵌套 tibble 的所有列取消嵌套到 tibbles 列表

2024-01-10

我正在将模型拟合到数据集中的每个组。我通过分组变量嵌套数据,然后使用映射将模型拟合到每个组。然后,我将整理后的模型信息存储为嵌套小标题中的列。

我想将每一列保存为自己的文件,本示例将它们保存为 Excel 工作簿中的工作表。

有没有办法不将每一列单独解除嵌套作为新的小标题?是否可以立即将所有列取消嵌套到新的 tibbles 列表中?一个可以用于其他功能(例如写入 Excel 文件)的函数?

library(tidyverse)
library(broom)
data(mtcars)
df <- mtcars

nest.df <- df %>% nest(-carb) 

results <- nest.df %>% 
  mutate(fit = map(data, ~ lm(mpg ~ wt, data=.x)),
         tidied = map(fit, tidy),
         glanced = map(fit, glance),
         augmented = map(fit, augment))


glanced.df <- results %>% 
  unnest(glanced, .drop=T)

tidied.df <- results %>% 
  unnest(tidied, .drop=T)

augmented.df <- results %>% 
  unnest(augmented, .drop=T)

myList <- list(glanced.df, tidied.df, augmented.df)
names(myList) <- c("glance", "tidy", "augment")

openxlsx::write.xlsx(myList, file = "myResults.xlsx")

Edit

再次阅读你的问题,我错过了最后一部分。但现在它应该就是您正在寻找的东西了。


像这样?

library(tidyverse)
library(broom)
data(mtcars)
df <- mtcars

nest.df <- df %>% nest(-carb) 

results <- nest.df %>% 
  mutate(fit = map(data, ~ lm(mpg ~ wt, data=.x)),
         tidied = map(fit, tidy),
         glanced = map(fit, glance),
         augmented = map(fit, augment))
results %>% select(glanced, tidied, augmented ) %>% 
map(~bind_rows(.))
#> $glanced
#> # A tibble: 6 x 11
#>   r.squared adj.r.squared  sigma statistic  p.value    df logLik    AIC
#>       <dbl>         <dbl>  <dbl>     <dbl>    <dbl> <int>  <dbl>  <dbl>
#> 1   0.696           0.658   2.29  18.3      2.70e-3     2 -21.4    48.7
#> 2   0.654           0.585   3.87   9.44     2.77e-2     2 -18.2    42.4
#> 3   0.802           0.777   2.59  32.3      4.62e-4     2 -22.6    51.1
#> 4   0.00295        -0.994   1.49   0.00296  9.65e-1     2  -3.80   13.6
#> 5   0               0     NaN     NA       NA           1 Inf    -Inf  
#> 6   0               0     NaN     NA       NA           1 Inf    -Inf  
#> # … with 3 more variables: BIC <dbl>, deviance <dbl>, df.residual <int>
#> 
#> $tidied
#> # A tibble: 10 x 5
#>    term        estimate std.error statistic      p.value
#>    <chr>          <dbl>     <dbl>     <dbl>        <dbl>
#>  1 (Intercept)   27.9       2.91     9.56     0.0000118 
#>  2 wt            -3.10      0.724   -4.28     0.00270   
#>  3 (Intercept)   44.8       6.49     6.90     0.000982  
#>  4 wt            -7.81      2.54    -3.07     0.0277    
#>  5 (Intercept)   39.4       3.09    12.7      0.00000137
#>  6 wt            -5.92      1.04    -5.68     0.000462  
#>  7 (Intercept)   17.5      22.1      0.791    0.574     
#>  8 wt            -0.312     5.73    -0.0544   0.965     
#>  9 (Intercept)   19.7     NaN      NaN      NaN         
#> 10 (Intercept)   15       NaN      NaN      NaN         
#> 
#> $augmented
#> # A tibble: 32 x 9
#>      mpg    wt .fitted .se.fit .resid  .hat .sigma .cooksd .std.resid
#>    <dbl> <dbl>   <dbl>   <dbl>  <dbl> <dbl>  <dbl>   <dbl>      <dbl>
#>  1  21    2.62    19.7   1.17   1.25  0.263   2.38 0.0730       0.639
#>  2  21    2.88    19.0   1.04   2.04  0.205   2.29 0.129        1.00 
#>  3  14.3  3.57    16.8   0.761 -2.50  0.111   2.23 0.0838      -1.16 
#>  4  19.2  3.44    17.2   0.796  1.99  0.121   2.31 0.0594       0.929
#>  5  17.8  3.44    17.2   0.796  0.594 0.121   2.43 0.00527      0.277
#>  6  10.4  5.25    11.6   1.22  -1.20  0.283   2.39 0.0760      -0.620
#>  7  10.4  5.42    11.1   1.32  -0.663 0.333   2.43 0.0315      -0.355
#>  8  14.7  5.34    11.3   1.27   3.39  0.310   1.90 0.714        1.78 
#>  9  13.3  3.84    16.0   0.725 -2.67  0.100   2.20 0.0842      -1.23 
#> 10  15.8  3.17    18.0   0.895 -2.24  0.153   2.27 0.102       -1.06 
#> # … with 22 more rows
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将嵌套 tibble 的所有列取消嵌套到 tibbles 列表 的相关文章

  • 将 data.frame 的列中的值替换为另一个 data.frame 中的值

    我的情况是 我有一个数据框 其中有一列填充了整数 1 到 6 我想用更具描述性的标签替换这些整数 这些标签在另一个充当 键 的数据框中提供 V1 V2 1 1 LABEL1 2 2 LABEL2 3 3 LABEL3 4 4 LABEL4
  • R:变换不规则时间字符串

    我有两个不同的时间序列 来自不同的数据帧 具有不同的不规则格式 但问题是相同的 我只想提取小时 分钟 秒和毫秒 时代系列看起来像这样 ts1 08 27 23 445 08 27 24 280 08 27 25 115 I tried st
  • 在 Shiny 中使用 readlines(prompt = )

    我有一个代码 使用以下方式获取输入readlines prompt 功能 您能告诉我 Shiny 中的哪个输入函数足以将此代码适应 Shiny 应用程序吗 我需要一个交互功能 我无法使用简单的输入selectInput 因为我有很多read
  • R 中大型稀疏矩阵的聚类分析

    我有一个包含 250000 笔交易 行 和 2183 项 列 的交易数据集 我想将其转换为稀疏矩阵 然后对其进行分层聚类 我尝试了包 sparcl 但它似乎不适用于稀疏矩阵 关于如何解决这个问题有什么建议吗 或者我可以使用任何其他包对稀疏矩
  • R比例置信区间因子

    我正在尝试总结家庭调查的数据 因此我的大部分数据都是分类 因子 数据 我想用对某些问题的回答频率图来总结它 例如 回答某些问题的家庭百分比的条形图 误差线显示置信区间 我发现了这个很棒的教程 我认为它是我祈祷的答案 http www coo
  • 有效地将环境从内部功能转移到全局环境

    我有一个在其中创建环境的函数 我希望将该环境分配给全局环境 目前我通过将环境分配给来做到这一点globalenv 作为最后一步 如下 funfun lt function inc 1 dataEnv lt new env dataEnv d
  • glm() 模型的交叉验证

    我正在尝试对我之前在 R 中构建的一些 glm 模型进行 10 倍交叉验证 我对cv glm 函数在boot包 尽管我已经阅读了很多帮助文件 当我提供以下公式时 library boot cv glm data glmfit K 10 这里
  • 使用 ggplotly(ggplot2 withplotly)时可以去掉注释中的跟踪标签吗?

    使用ggplotly时是否可以删除注释中的跟踪标签 例如 library ggplot2 library plotly g lt ggplot iris aes Sepal Width Sepal Length geom point ann
  • 通过 RSelenium 单击按钮

    我正在尝试使用 Rselarium 和 Rvest 来抓取 REI 的评论 吊床 我想点击底部的按钮 x 次 这样我就可以抓取所有评论 我有点失落 这是我到目前为止所拥有的 如果您也知道如何在取景器中预览您正在做的事情 而不是屏幕打印 那就
  • R:使用管道将单个参数传递到函数中的多个位置

    我试图专门使用管道来重写以下代码 使用babynames包中的babynames数据 library babynames library dplyr myDF lt babynames gt group by year gt summari
  • 在ggplot2中创建部分虚线

    我正在 R 中创建一个图 并且需要创建一条线 其中某些值是投影 投影用虚线表示 这是代码 df data frame date c rep 2008 2013 by 1 value c 303 407 538 696 881 1094 gg
  • 在 R 中修改传单弹出窗口

    我想修改 R 中传单弹出窗口的外观 帮助文件指出 in the popupOptions 函数需要 传递给底层 Javascript 对象构造函数的额外选项 In 这个例子 https rstudio github io leaflet p
  • 带有嵌套分组变量的多行轴标签,用于 - R 中的堆积条形图

    我想使用 ggplot 制作一个包含多个类别的堆叠条形图 并带有嵌套的标记 X 轴 类似于我使用 Excel 制作的条形图 如此处所示 我尝试使用给出的例子here https stackoverflow com questions 181
  • 如何在multilist中设置xlim?

    以下代码创建 3 个向量 并将它们显示为交错直方图 a lt c 1 2 3 b lt c 1 1 2 c lt c 1 1 1 l lt list a b c multhist l col c red green blue xlim c
  • 使用亚毫秒日期时间从字符->POSIXct->字符准确转换

    我的文件中有一个字符日期时间列 我加载文件 到data table 并执行需要将列转换为的操作POSIXct 然后我需要写POSIXct值返回文件 但日期时间不会相同 因为打印不正确 这个打印 格式问题是众所周知的 并且已经被讨论过多次 我
  • 如何优化 R 中的 sapply 来计算数据帧上的运行总计

    我在 R 中编写了一个函数来按月份计算累积总数 但随着数据集变大 我的方法的执行时间呈指数增长 我是一名 R 程序员新手 你能帮我提高效率吗 该函数以及我调用该函数的方式 accumulate lt function recordnum d
  • 如何在 R 中查找平衡面板数据(又名,如何查找面板中的哪些条目在给定窗口内完整)

    我有来自 Compustat 的大量数据 我向其中添加了一些手工收集的数据 认真地从一堆旧书中手工收集 但我不想手工收集整个面板 只想随机选择一个子集 为了找到更大的集合 我从中随机选择 我想从 Compustat 的平衡面板开始 我看到p
  • for 循环与 cor.test 在许多类别上

    我正在尝试在 R 中编写一个循环 它将循环遍历 3 个不同的物种 以计算两个连续变量 Redness 和 VarNormAbund 之间的相关性 我的循环正在运行 但 3 个物种中每一个的输出都是相同的 这让我认为循环卡在第一个物种上 co
  • 通过 RCpp 返回 NA

    新手 RCpp 问题在这里 How can I make a NumericVector returnNA到R 例如 假设我有一个 RCpp 代码 它分配NA到向量的第一个元素 RCpp export NumericVector myFun
  • 替换rmarkdown/knitr/pdf中字幕的自动编号

    我正在使用 Rmarkdown 生成 PDF 文档 我想在其中手动定义图号 下面是一个块的示例 r chunk26 fig cap Fig 5 3 My figure caption plot 1 1 我使用特殊的编号来遵循文档的章节 问题

随机推荐