R 为嵌套的TIBLES添加分组变量
这是对此的后续行动 我需要能够在新的嵌套表中按()对列进行分组。我找不到一个purrr函数来实现这一点(尽管我知道存在一个解决方案)。我需要将每个表中的_分组,以应用附加的汇总函数并适当拟合线性模型。这里的示例只是一个虚拟示例R 为嵌套的TIBLES添加分组变量,r,dplyr,tidyr,purrr,R,Dplyr,Tidyr,Purrr,这是对此的后续行动 我需要能够在新的嵌套表中按()对列进行分组。我找不到一个purrr函数来实现这一点(尽管我知道存在一个解决方案)。我需要将每个表中的_分组,以应用附加的汇总函数并适当拟合线性模型。这里的示例只是一个虚拟示例 library(tidyverse) set.seed(2) N <- 30 df <- tibble(type = rep(c("small","medium","high"), each=N/3), dummy = rep(c(1
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")
库(tidyverse)
种子(2)
N%
选择(-dummy)%>%
pivot_更长(cols=-c(type,xvals),name_to=“metric”,values_to=“value”)%>%
分组依据(类型)%>%
组嵌套(.key=“data”)
这将生成一个包含两列的TIBLE:
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
#一个tibble:3x2
类型数据
1小
2中等
3高
这是我想在所有嵌套的Tibble中执行的操作的一个示例:
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
df[[2][[1]]%>%
分组单位(公制)%>%
汇总(平均值=平均值)
#一个tibble:3x2
公制平均数
1 A 0.211
2b-0.296
3 C-0.391
在组嵌套
之后,“数据”是列表
列的tible
s,只有两列“type”和“data”。如果我们需要根据列表
列创建分组,请使用映射
在列表
中循环,然后按进行分组
library(dplyr)
library(tidyr)
library(purrr)
df %>%
mutate(data = map(data, ~ .x %>%
group_by(metric) %>%
summarize(mean = mean(value)))) -> out
out$data[[1]]
# A tibble: 3 x 2
# metric mean
# <chr> <dbl>
#1 A 0.115
#2 B 0.323
#3 C -0.326
库(dplyr)
图书馆(tidyr)
图书馆(purrr)
df%>%
变异(数据=映射(数据,~.x%>%
分组单位(公制)%>%
汇总(平均值=平均值))->out
out$data[[1]]
#一个tibble:3x2
#公制平均数
#
#1 A 0.115
#2b0.323
#3 C-0.326
注意:输出值将不同,因为在
组嵌套之后没有设置种子,只有两列类型
和数据
所需的输出是什么?您试图创建的tibble看起来像什么?您只能根据tibble在顶层的列对其进行分组。@akrun我根据您的评论更新了帖子。现在我的意图应该更清楚了。@LloydChristmas。你可以查我的资料