【发布时间】:2020-02-13 11:40:45
【问题描述】:
这是question的后续行动。
我需要能够在我的新嵌套表中对列进行分组。我找不到执行此操作的 purrr 函数(尽管我知道存在解决方案)。我需要在每个表中进行 group_by 以应用额外的汇总函数并适当地拟合线性模型。这里的例子只是一个虚拟的例子。
library(tidyverse)
set.seed(2)
N <- 30
df <- tibble(type = rep(c("small","medium","high"), each=N/3),
dummy = rep(c(1,5,10),each=10),
xvals = rep(1:10,3),
A = rnorm(N)*dummy,
B = rnorm(N)*dummy,
C = rnorm(N)*dummy) %>%
mutate(type = factor(type, levels=c("small","medium","high"))) %>%
select(-dummy) %>%
pivot_longer(cols=-c(type,xvals), names_to="metric", values_to = "value") %>%
group_by(type) %>%
group_nest(.key="data")
这会产生一个包含两列的小标题:
df
# A tibble: 3 x 2
type data
<fct> <list>
1 small <tibble [30 x 3]>
2 medium <tibble [30 x 3]>
3 high <tibble [30 x 3]>
这是我想要在所有嵌套的小标题中执行的示例:
df[[2]][[1]] %>%
group_by(metric) %>%
summarize(mean = mean(value))
# A tibble: 3 x 2
metric mean
<chr> <dbl>
1 A 0.211
2 B -0.296
3 C -0.391
【问题讨论】:
-
在
group_nest之后只有两列type和data -
想要的输出到底是什么?您尝试创建的 tibble 是什么样的?您只能根据顶层的列对 tibble 进行分组。
-
@akrun 我根据您的 cmets 更新了帖子。现在应该更清楚我的意图了。
-
@LloydChristmas。你可以查看我的更新