gpt4 book ai didi

r - 为什么map %>% as.data.frame 给出的结果与map_df 不同?

转载 作者:行者123 更新时间:2023-12-02 18:43:04 25 4
gpt4 key购买 nike

我是 R 新手,正在尝试了解如何使用 mapmap_df。考虑以下因素:

iris %>% split(.$Species) %>% map_df(function (x) apply(x[, 1:4], 2, mean))

并比较

iris %>% split(.$Species) %>% map(function (x) apply(x[, 1:4], 2, mean)) %>% as.data.frame

前者给出以下输出:

  Sepal.Length Sepal.Width Petal.Length Petal.Width
<dbl> <dbl> <dbl> <dbl>
1 5.01 3.43 1.46 0.246
2 5.94 2.77 4.26 1.33
3 6.59 2.97 5.55 2.03

后者给出:

             setosa versicolor virginica
Sepal.Length 5.006 5.936 6.588
Sepal.Width 3.428 2.770 2.974
Petal.Length 1.462 4.260 5.552
Petal.Width 0.246 1.326 2.026

我的问题是:为什么?我希望这两个命令给出相同的输出。如何使用 map_df 函数获得第二个输出?

最佳答案

map_df() 似乎按行绑定(bind)列表元素(与 map_dfr() 相同),尽管它在 documentation 中没有明确说明。 。如果您想按列绑定(bind),请使用map_dfc()。请注意,输出是一个小标题,不鼓励使用行名。这个document建议在 tibbles 中使用行名的方法。

iris %>% 
split(.$Species) %>%
map_dfc(function (x) apply(x[, 1:4], 2, mean))

# # A tibble: 4 x 3
# setosa versicolor virginica
# <dbl> <dbl> <dbl>
# 1 5.01 5.94 6.59
# 2 3.43 2.77 2.97
# 3 1.46 4.26 5.55
# 4 0.246 1.33 2.03

关于r - 为什么map %>% as.data.frame 给出的结果与map_df 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67814395/

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