R 在嵌套的TIBLE中分组汇总(带排列)
我有一个相当简单的问题,答案已经很复杂(通过循环),但我希望有人能在R 在嵌套的TIBLE中分组汇总(带排列),r,permutation,purrr,R,Permutation,Purrr,我有一个相当简单的问题,答案已经很复杂(通过循环),但我希望有人能在purr中给我一个更优雅的答案 基本上,我正在考虑为我的学生介绍排列,作为统计推断(即t和z值)样板方法的计算替代方法。在我设置的玩具示例中,我使用了一些分组方法(通过dplyr'groupby()和summary())以及通过modeler进行排列。我想知道如何在包含排列的嵌套TIBLE中存储分组平均值 我已经有了一个通过循环的解决方案(通过排列绕过将它们存储在TIBLE中),但我想看看purrr中的解决方案是什么 这是我正在
purr
中给我一个更优雅的答案
基本上,我正在考虑为我的学生介绍排列,作为统计推断(即t和z值)样板方法的计算替代方法。在我设置的玩具示例中,我使用了一些分组方法(通过dplyr'
groupby()
和summary()
)以及通过modeler
进行排列。我想知道如何在包含排列的嵌套TIBLE中存储分组平均值
我已经有了一个通过循环的解决方案(通过排列绕过将它们存储在TIBLE中),但我想看看purrr
中的解决方案是什么
这是我正在做的一个基本例子
库(tidyverse)
库(建模器)
mtcars%>%
置换(每加仑1000英里)->置换车
perm_总和%
切片(i)%>%
拉(perm)%%>%as.data.frame%%>%
组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别
汇总(平均值=平均值(mpg))%>%
变异(perm=i)->保持这个
perm_sums在我看来,您可能会从操作“列表列”然后使用tidyr::unest
函数中获益
在本例中,我使用lappy
对列表列进行操作,但是如果您真的想要,您可以轻松地使用purr::map
library(tidyverse)
library(modelr)
groupmean <- function(x) {
x %>%
as.data.frame %>%
group_by(cyl) %>%
summarize(mpg_mean = mean(mpg), .groups = 'drop')
}
perm_means <- mtcars %>%
permute(1000, mpg) %>%
mutate(perm = lapply(perm, groupmean)) %>%
unnest(perm)
perm_means %>% head
#> # A tibble: 6 x 3
#> cyl mpg_mean .id
#> <dbl> <dbl> <chr>
#> 1 4 17.5 0001
#> 2 6 23.6 0001
#> 3 8 20.3 0001
#> 4 4 20.1 0002
#> 5 6 19.6 0002
#> 6 8 20.3 0002
在我看来,操作“列表列”,然后使用tidyr::unnest
函数可能会使您受益匪浅
在本例中,我使用lappy
对列表列进行操作,但是如果您真的想要,您可以轻松地使用purr::map
library(tidyverse)
library(modelr)
groupmean <- function(x) {
x %>%
as.data.frame %>%
group_by(cyl) %>%
summarize(mpg_mean = mean(mpg), .groups = 'drop')
}
perm_means <- mtcars %>%
permute(1000, mpg) %>%
mutate(perm = lapply(perm, groupmean)) %>%
unnest(perm)
perm_means %>% head
#> # A tibble: 6 x 3
#> cyl mpg_mean .id
#> <dbl> <dbl> <chr>
#> 1 4 17.5 0001
#> 2 6 23.6 0001
#> 3 8 20.3 0001
#> 4 4 20.1 0002
#> 5 6 19.6 0002
#> 6 8 20.3 0002
是的,就是这样。谢谢你。是的,就是这样。谢谢你。