Title: | Group Assignment Tool |
---|---|
Description: | An efficient algorithm to generate group assignments for classroom settings while minimizing repeated pairings across multiple rounds. |
Authors: | Hannah Kim [aut], Collin Nolte [cre] |
Maintainer: | Collin Nolte <noltecollin@grinnell.edu> |
License: | GPL-3 |
Version: | 0.1.0 |
Built: | 2025-03-15 19:15:23 UTC |
Source: | CRAN |
Generates test data frame of the students with unique ID (uppercase letters)
GenerateData(num_students)
GenerateData(num_students)
num_students |
a positive integer. |
a data frame
# five students GenerateData(5)
# five students GenerateData(5)
Assign Groups and Update Interaction Matrix
groupassign(student_data, students_per_group, iterations)
groupassign(student_data, students_per_group, iterations)
student_data |
A data frame containing student identifiers. The column should be named 'Student'. |
students_per_group |
An integer specifying the number of students per group. |
iterations |
An integer defining how many rounds of group assignments should be performed. |
A matrix representing the interaction history of students, where each cell indicates the number of times two students have been grouped together.
n_students <- 4 student_data <- GenerateData(n_students) students_per_group <- 2 iterations <- 3 matrices_df <- groupassign(student_data, students_per_group, iterations) matrices_df
n_students <- 4 student_data <- GenerateData(n_students) students_per_group <- 2 iterations <- 3 matrices_df <- groupassign(student_data, students_per_group, iterations) matrices_df
Generates initial matrix
initmat(students)
initmat(students)
students |
a column of a dataset that has students' unique IDs |
matrix
# Initial matrix 5x5 data <- GenerateData(5) initmat(data$Student)
# Initial matrix 5x5 data <- GenerateData(5) initmat(data$Student)
Assign every student into groups with set number of students per group, with set number of iterations (overlap not considered)
MakeGroups(data, students_per_group, iterations, initial_matrix)
MakeGroups(data, students_per_group, iterations, initial_matrix)
data |
a data frame |
students_per_group |
a positive integer |
iterations |
a positive integer |
initial_matrix |
matrix generated with 'initmat()' |
data frame
# Assign 9 students into 3 groups of 3, with 3 iterations data <- GenerateData(9) M <- initmat(data$Student) MakeGroups(data, 3, 3, M)
# Assign 9 students into 3 groups of 3, with 3 iterations data <- GenerateData(9) M <- initmat(data$Student) MakeGroups(data, 3, 3, M)
This function updates an existing interaction matrix based on new group assignments. It increments the matrix values to track how often students have been grouped together.
updatemat(initialmat, group_assignments, students)
updatemat(initialmat, group_assignments, students)
initialmat |
A square matrix where rows and columns represent students, and cell values track the number of times two students have been grouped together. |
group_assignments |
A vector indicating the group assignments for each student. |
students |
A vector containing student identifiers corresponding to the matrix row and column names. |
An updated matrix reflecting the new group assignments.
n_students <- 4 student_data <- GenerateData(n_students) initial_matrix <- initmat(student_data$Student) group_assignments <- c(1, 1, 2, 2) # Example group assignments updated_matrix <- updatemat(initial_matrix, group_assignments, student_data$Student) updated_matrix
n_students <- 4 student_data <- GenerateData(n_students) initial_matrix <- initmat(student_data$Student) group_assignments <- c(1, 1, 2, 2) # Example group assignments updated_matrix <- updatemat(initial_matrix, group_assignments, student_data$Student) updated_matrix