假设我有一个 Dataframe ,如以下代码所创建的 Dataframe :
library(dplyr)
library(stringr)
letters_comb <- expand.grid(LETTERS, LETTERS) %>%
mutate(Combination = paste0(Var1, Var2)) %>%
select(Combination) %>%
sample_n(100)
set.seed(123)
n_times <- round(runif(100, 80, 120))
df <- data.frame(fac_var = as.factor(rep(letters_comb$Combination, times = n_times)))
如何将df
拆分为最大数量的块,使得每个块包含fac_var
的每个唯一值,并且每行都包含在块中?使用dplyr
(或其他tidyverse
封装)的解决方案特别受欢迎。
1条答案
按热度按时间nvbavucw1#
您可以使用
dplyr
包中的group_split()
函数。group_by(fac_var)
通过fac_var
列对 Dataframe 进行分组,group_split()
根据分组将dataframe
拆分为chunks
。每个块将包含对应于唯一值fac_var
的所有行。