使用Tidyverse方法将数据集拆分为多个表

时间:2017-08-13 20:26:27

标签: r tidyverse purrr

library(ggmosaic)
library(tidyverse)

我正在努力使用Tidyverse方法将数据集拆分成多个表。我将使用下面的代码创建一个数据集,其结构与我的实际数据有些相似。

happy2<-happy%>%
select(sex,marital,degree,health)%>%
group_by(sex,marital,degree,health)%>%
summarise(Count=n())

现在,使用happy2数据集,我想按“度”分割数据,并且在每个学位类别中,将有两个表,一个用于男性,一个用于女性,基于“性别”变量。每个表都有“marital”和“Count”作为列,“health”作为行。

我希望找到一种使用Tidyverse方法创建这些表的优雅方法,例如tidyr :: nest,purrr或split。

1 个答案:

答案 0 :(得分:0)

这似乎是一个相当直接的分裂应用:

# For a flat list
happy2 %>%
  split(list(.$degree, .$sex))

# For a nested list
happy2 %>% 
  split(.$degree) %>% 
  lapply(function(x) split(x, x$sex))

这两种方法都很有效,语法相当简洁,易于理解;我不确定为什么需要一个整齐的等价物。