我不确定如何最好地描述我的问题,但我正在处理一个调度项目。我有一个数据框,包含教授、课程和时间段,以及几列每列都包含随机生成的数字。我希望使用这些随机数来生成不同的日程安排选项。
这是我目前拥有的:
Prof Courses Time Option_1 Option_2
John Course A Time 1 0.7765824 0.3102492
John Course A Time 2 0.5636233 0.4839778
John Course B Time 1 0.5814365 0.7282360
John Course B Time 2 0.2623851 0.5198096
同时,这就是我所期望的:
Prof Courses Time Option_1 Option_2
John Course A Time 1 1 0
John Course A Time 2 0 1
John Course B Time 1 0 1
John Course B Time 2 1 0
对于选项1,0.7765824 是最高的数字,所以它会变成1-意味着课程将在那个时间段教授。下一个最高的数字是0.2623851,表示未安排课程和已填充时间槽的情况,所以它被更改为1。
对于选项2,0.7282360 是最高的数字,所以它变为1。然后,0.4839778 变为1,因为它是未安排课程且时间槽未填满的最高数字。
真实数据涉及到数百名教授教授不同数量的课程和数百个选项,因此解决方案需要能够使用group_by()函数(或类似的函数),并且足够灵活以考虑教授教授不同数量的课程。
有什么想法?
structure(list(Prof = c("John", "John", "John", "John"), Courses = c("Course A", "Course A", "Course B", "Course B"), Time = c("Time 1", "Time 2", "Time 1", "Time 2"), Option_1 = c(0.7765824, 0.5636233, 0.5814365, 0.2623851), Option_2 = c(0.3102492, 0.4839778, 0.728236, 0.5198096)), row.names = c(NA, -4L), class = c("tbl_df", "tbl", "data.frame"))
- Matt