使用R,随机将学生分成4个小组

Bio*_*e12 5 r sample

我还在学习R,并且已经完成了根据另一个变量将一长串学生分成四人一组的任务.我已将数据作为数据框加载到R中.如何在没有替换的情况下对整行进行采样,从变量的4个级别中选择一个,并将R输出到电子表格中?

到目前为止,我一直在修补for循环和示例函数,但我很快就超越了我的脑袋.有什么建议?这是我试图做的样本.鉴于:

Last.Name <- c("Picard","Troi","Riker","La Forge", "Yar", "Crusher", "Crusher", "Data")
First.Name <- c("Jean-Luc", "Deanna", "William", "Geordi", "Tasha", "Beverly", "Wesley", "Data")
Email <- c("a@a.com","b@b.com", "c@c.com", "d@d.com", "e@e.com", "f@f.com", "g@g.com", "h@h.com")
Section <- c(1,1,2,2,3,3,4,4)

df <- data.frame(Last.Name,First.Name,Email,Section)
Run Code Online (Sandbox Code Playgroud)

我想从每个部分中随机选择一个星际迷航角色,最后得到2组4.我希望整行的信息能够转换成包含所有组及其相应组号的新数据帧.

col*_*ade 5

我会使用精彩的'dplyr'包

require(dplyr)

random_4 <- df %>% group_by(Section) %>% slice(sample(c(1,2),1))

random_4
Source: local data frame [4 x 4]
Groups: Section

  Last.Name First.Name   Email Section
1      Troi     Deanna b@b.com       1
2  La Forge     Geordi d@d.com       2
3   Crusher    Beverly f@f.com       3
4      Data       Data h@h.com       4

random_4
Source: local data frame [4 x 4]
Groups: Section

  Last.Name First.Name   Email Section
1    Picard   Jean-Luc a@a.com       1
2     Riker    William c@c.com       2
3   Crusher    Beverly f@f.com       3
4      Data       Data h@h.com       4
Run Code Online (Sandbox Code Playgroud)

%>%表示'然后'

代码读作:

取DF和THEN为所有'Section',按位置(切片)1或2选择.Voila.