如何将给定数据帧的子集分成3组,每组包含R中的5行
我有一个R数据框,包含45行5列。它有三组,分别为“第一组”、“第二组”、“第三组”。每个组包含相同的15个观察值(注:这是15个位置ID和属性以及组ID之间的结果组合)如何将给定数据帧的子集分成3组,每组包含R中的5行,r,R,我有一个R数据框,包含45行5列。它有三组,分别为“第一组”、“第二组”、“第三组”。每个组包含相同的15个观察值(注:这是15个位置ID和属性以及组ID之间的结果组合) 我需要将这个数据帧中所有可能的行的组合放入15行的子集中,这样每个组都包含5行,这5行在组内和组间都是唯一的 假设您的数据集是df此解决方案仅保留15行不同的行,然后根据它们的行号为它们分配一个组ID值: library(dplyr) df %>% select(-Group_ID) %>% distin
我需要将这个数据帧中所有可能的行的组合放入15行的子集中,这样每个组都包含5行,这5行在组内和组间都是唯一的 假设您的数据集是
df
此解决方案仅保留15行不同的
行,然后根据它们的行号为它们分配一个组ID
值:
library(dplyr)
df %>%
select(-Group_ID) %>%
distinct() %>%
mutate(Group_ID = case_when(row_number() <= 5 ~ "Group1",
between(row_number(), 6, 10) ~ "Group2",
row_number() >= 11 ~ "Group3"))
# Location_ID Population Orders num_schools Group_ID
# 1 1 718866 4163 613 Group1
# 2 2 905600 4673 790 Group1
# 3 3 319276 4892 214 Group1
# 4 4 378980 3916 535 Group1
# 5 5 598938 4395 655 Group1
# 6 6 677865 4753 460 Group2
# 7 7 716822 3234 894 Group2
# 8 8 525005 2040 309 Group2
# 9 9 528621 2865 796 Group2
# 10 10 577955 4856 613 Group2
# 11 11 604970 2199 704 Group3
# 12 12 521017 2510 939 Group3
# 13 13 613552 2050 551 Group3
# 14 14 126465 3933 746 Group3
# 15 15 197608 2121 674 Group3
欢迎来到StackOverflow!请阅读相关信息以及如何给出建议。这将使其他人更容易帮助你
library(dplyr)
df %>%
select(-Group_ID) %>%
distinct() %>%
mutate(Group_ID = case_when(row_number() <= 5 ~ "Group1",
between(row_number(), 6, 10) ~ "Group2",
row_number() >= 11 ~ "Group3"))
# Location_ID Population Orders num_schools Group_ID
# 1 1 718866 4163 613 Group1
# 2 2 905600 4673 790 Group1
# 3 3 319276 4892 214 Group1
# 4 4 378980 3916 535 Group1
# 5 5 598938 4395 655 Group1
# 6 6 677865 4753 460 Group2
# 7 7 716822 3234 894 Group2
# 8 8 525005 2040 309 Group2
# 9 9 528621 2865 796 Group2
# 10 10 577955 4856 613 Group2
# 11 11 604970 2199 704 Group3
# 12 12 521017 2510 939 Group3
# 13 13 613552 2050 551 Group3
# 14 14 126465 3933 746 Group3
# 15 15 197608 2121 674 Group3
df %>%
select(-Group_ID) %>%
distinct() %>%
sample_frac(1) %>%
mutate(Group_ID = case_when(row_number() <= 5 ~ "Group1",
between(row_number(), 6, 10) ~ "Group2",
row_number() >= 11 ~ "Group3"))