【问题标题】:Splitting a Dataset into Multiple Tables Using Tidyverse Methods [duplicate]使用 Tidyverse 方法将数据集拆分为多个表
【发布时间】:2018-01-21 16:59:20
【问题描述】:
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。

【问题讨论】:

    标签: r tidyverse purrr


    【解决方案1】:

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

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

    这两种方法都很有效,语法相当简洁易懂;我不确定为什么需要一个 tidyverse 等效项。

    【讨论】:

    • 我可能在这个问题上问得太多了。我现在看到了如何使用 split 来实现第一部分,但是一旦我有了列表,下一部分就是重塑表格。我创建了另一个问题作为第二部分,标题为“将数据集拆分为嵌套的数据帧列表,然后使用 Tidyr 和 Purrr 进行传播”。这就是为什么我认为 Tidyverse 方法对于使用 Tidyr 展开表格最有用,尤其是 purrr。
    猜你喜欢
    • 2019-06-07
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    相关资源
    最近更新 更多