Esta es una respuesta muy tardía, pero encontré esta página mientras buscaba en Google si el problema como se ha mencionado alguna vez se ha discutido en alguna parte. Tal vez mi respuesta ayude si alguien encuentra esta página de ahora en adelante.
Escribí un paquete R, que hace exactamente lo que pedía la pregunta: toma un data.frame
y crea N grupos diferentes al intentar minimizar las diferencias entre grupos en uno o varios criterios. Utiliza un método simple basado en la asignación aleatoria repetida , que también es el método sugerido en la respuesta aprobada.
Este es el enlace al paquete minDiff :
Para abordar el problema declarado, puede usar:
library(minDiff)
assigment <- create_groups(dataframe, criteria_scale = c("price", "click count", "rating"), sets_n = N, repetitions = 1000)
El repetitions
argumento determinará con qué frecuencia crea aleatoriamente diferentes grupos. Se devolverá la mejor asignación, la que tiene diferencias mínimas entre los grupos.