使用 dplyr 将 R 中的数据帧拆分为更小的数据帧

Ed_*_*avy 5 r dplyr

我有一个观察dataframe结果118,总共有三列。现在,我想将此数据框分成每个观察two dataframes59。我尝试了两种不同的方法,但没有一个返回我想要的结果。

我该如何使用dplyrin来做到这一点R

示例数据框:

Code Count_2020 Count_2021
A    1          2
B    2          4
C    3          6
D    4          8
E    5          10
F    6          12
Run Code Online (Sandbox Code Playgroud)

期望的输出:

DF1

Code Count_2020 Count_2021
    A    1          2
    B    2          4
    C    3          6
Run Code Online (Sandbox Code Playgroud)

DF2

Code Count_2020 Count_2021
    D    4          8
    E    5          10
    F    6          12
Run Code Online (Sandbox Code Playgroud)

第一种方法

基于这个答案

library(tidyverse)
df= df %>% group_split(Code)
Run Code Online (Sandbox Code Playgroud)

现在,这将返回 的列表118,因此它是一个观察值列表118,其中每个观察值list都有3列。

第二种方法

基于这个答案

library(tidyverse)
df= df %>% sample_n(size = 59) %>% 
  split(f = as.factor(.$Code))
Run Code Online (Sandbox Code Playgroud)

现在这将返回一个59.

akr*_*run 8

我们可以用来gl创建分组列group_split

library(dplyr)
df1 %>%
      group_split(grp = as.integer(gl(n(), 59, n())), .keep = FALSE)
Run Code Online (Sandbox Code Playgroud)