r - R:随机抽样将学生分配到相等的组。了解 rep() 参数 length.out 到 sample()
问题描述
我有 33 名学生,我想在 5 个不同的场合将他们分成 6 人一组(或尽可能接近)。所以我在不同的场合给学生分配一个 1 到 6 之间的数字。
我已经管理了以下内容:
studentlist <- data.frame(seq(1:33))
studentlist$Occassion1 <- sample(factor(rep(1:6, length.out=nrow(studentlist)),
labels=paste0(1:6)))
studentlist$Occassion2 <- sample(factor(rep(1:6, length.out=nrow(studentlist)),
labels=paste0(1:6)))
studentlist$Occassion3 <- sample(factor(rep(1:6, length.out=nrow(studentlist)),
labels=paste0(1:6)))
studentlist$Occassion4 <- sample(factor(rep(1:6, length.out=nrow(studentlist)),
labels=paste0(1:6)))
studentlist$Occassion5 <- sample(factor(rep(1:6, length.out=nrow(studentlist)),
labels=paste0(1:6)))
这似乎有效。据我了解,我要求每行随机抽样 1 到 6 个。
rep() 中的 length.out 参数如何与 sample() 交互?
当我运行频率表来检查组的大小时,我发现以下内容:
麻木=1,2,3,4,5,6。大小=6,6,6,5,5,5。
我尝试改为要求 7 个组,得到的组大小为:
麻木=1,2,3,4,5,6,7。大小=5,5,5,5,5,4,4。
为什么它们以这种递减的方式组织起来?
解决方案
由于 rep 函数如何与 length.out 一起工作,您拥有这种特定模式。如果要创建 6 人组,
rep(1:6, length.out = 33)
首先将数字 1 到 6 重复 5 次(生成 30 个值)并用值 1、2 和 3 完成 3 个缺失的数字。因此,在第 1、2 和 3 组中,您将始终多一名学生。
推荐阅读
- c# - 如何在路由控制器中传递两个参数
- python - 我有一个具有偏移参数并想要循环的函数
- apache - Yii2 | 使用 htaccess 重定向到后端/前端
- excel - 在 MS EXCEL 中创建 IF 公式
- rails-activestorage - 如何向 ActiveStorage 添加权限?
- flutter - 如何在取消谷歌登录对话框时处理进度指示器?
- qemu - qemu中的ARM At91 CPU启动
- python-3.x - 选择并复制文件+目录
- c++ - 如何使用多核而不是多线程进行编程?
- apache-spark - 使用python将pickle(.pck)文件转换为spark数据帧