gpt4 book ai didi

r - map_dfr 输出一行而不是一列

转载 作者:行者123 更新时间:2023-12-05 04:27:41 25 4
gpt4 key购买 nike

这类似于 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

我想把它变成一个小标题,其中包含平均值、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 - map_dfr 输出一行而不是一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72768961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com