这与purrr::map_dfr binds by columns, not row as expected相似,但那里的解决方案对我不起作用.我有一个数据框

beta_df <- structure(list(intercept = c(-2.75747056032685, -2.90831892599742, 
-2.92478082251453, -2.99701559041538, -2.88885796048347, -3.09564193631675
), B1 = c(0.0898235360814854, 0.0291839369781567, 0.0881023522236231, 
0.231703026085554, 0.0441573699433149, 0.258219673780526), B2 = c(-0.222367437619057, 
0.770536384299238, 0.199648657850609, 0.0529038155448773, 0.00310458335580774, 
0.132604387458483), B3 = c(1.26339268033385, 1.29883641278223, 
0.949504940387809, 1.26904511447941, 0.863882674439083, 0.823907268679309
), B4 = c(2.13662994525526, 1.02340744740827, 0.959079691725652, 
1.60672779812489, 1.19095838867883, -0.0693120654049908)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame"))

#> # A tibble: 6 × 5
#>   intercept     B1       B2    B3      B4
#>       <dbl>  <dbl>    <dbl> <dbl>   <dbl>
#> 1     -2.76 0.0898 -0.222   1.26   2.14  
#> 2     -2.91 0.0292  0.771   1.30   1.02  
#> 3     -2.92 0.0881  0.200   0.950  0.959 
#> 4     -3.00 0.232   0.0529  1.27   1.61  
#> 5     -2.89 0.0442  0.00310 0.864  1.19  
#> 6     -3.10 0.258   0.133   0.824 -0.0693

我想把它转换成一个tibble,用列表示平均值,0.025和0.975分位数.对于quantile功能,此功能起作用:

beta_df %>%
    map_dfr(quantile,0.025)

#> # A tibble: 5 × 1
#>    `2.5%`
#>     <dbl>
#> 1 -3.08  
#> 2  0.0311
#> 3 -0.194 
#> 4  0.829 
#> 5  0.0592

这就得到了两个分位数

bind_cols(beta_df %>%
    map_dfr(quantile, 0.025),
    beta_df %>%
    map_dfr(quantile, 0.975))

#> # A tibble: 5 × 2
#>    `2.5%` `97.5%`
#>     <dbl>   <dbl>
#> 1 -3.08    -2.77 
#> 2  0.0311   0.255
#> 3 -0.194    0.699
#> 4  0.829    1.30 
#> 5  0.0592   2.07

但是对于mean

beta_df %>%
    map_dfr(mean)

#> # A tibble: 1 × 5
#>   intercept    B1    B2    B3    B4
#>       <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1     -2.93 0.124 0.156  1.08  1.14

给我一个长的行而不是列.如何将原始数据框中每列的平均值转换为标记为平均值的单列数据框中的一行?

推荐答案

原因是quantile()的输出是一个命名向量,而mean()的输出只是一个值.

让我们用输出命名向量的平均值创建一个自定义函数,

myMean <- function(x) {setNames(mean(x), nm = 'theMean')}

使用我们得到的map_dfr

library(dplyr)

beta_df %>%
    purrr::map_dfr(myMean)

# A tibble: 5 x 1
  theMean
    <dbl>
1  -2.93 
2   0.124
3   0.156
4   1.08 
5   1.14 

R相关问答推荐

R形式的一维数字线/箱形图样式图表

在发布到PowerBI Service时,是否可以使用R脚本作为PowerBI的数据源?

非线性混合效应模型(NLME)预测变量的置信区间

如何使用列表中多个列表中的第一条记录创建数据框

如何使用tryCatch执行语句并忽略警告?

在ggplot2的框图中绘制所有级别的系数

如何基于两个条件从一列中提取行

为什么我使用geom_density的绘图不能到达x轴?

Geom_Hline将不会出现,而它以前出现了

从R中的对数正态分布生成随机数的正确方法

仅在R中的数据集开始和结束时删除所有 Select 列的具有NA的行

我将工作代码重构为一个函数--现在我想不出如何传递轴列参数

为什么在写入CSV文件时Purrr::Pwalk不起作用

按组使用dummy r获取高于标准的行的平均值

有没有办法将勾选/审查标记添加到R中的累积关联图中?

如何在矩阵图中按标准对数据进行分组以绘制矩阵

组合名称具有模式的列表的元素

根据向量对列表元素进行排序

使用循环改进功能( struct 简单)

如何根据分位数及其值创建格式化字符串值的数组?