Đây là một câu trả lời rất muộn, nhưng tôi đã tìm thấy trang này trong khi tìm hiểu xem vấn đề như đã nêu có bao giờ được thảo luận ở bất cứ đâu không. Có lẽ câu trả lời của tôi sẽ giúp nếu ai đó tìm thấy trang này từ bây giờ.
Tôi đã viết một gói R, trong đó thực hiện chính xác những gì câu hỏi yêu cầu: nó cần một data.frame
và tạo N nhóm khác nhau trong khi cố gắng giảm thiểu sự khác biệt giữa các nhóm trong một hoặc một vài tiêu chí. Nó sử dụng một phương thức đơn giản dựa trên sự phân công ngẫu nhiên lặp đi lặp lại , đây cũng là phương pháp được đề xuất trong phản hồi được phê duyệt.
Đây là liên kết đến gói minDiff :
Để giải quyết vấn đề đã nêu, bạn có thể sử dụng:
library(minDiff)
assigment <- create_groups(dataframe, criteria_scale = c("price", "click count", "rating"), sets_n = N, repetitions = 1000)
Đối repetitions
số sẽ xác định tần suất bạn tạo ngẫu nhiên các nhóm khác nhau. Nhiệm vụ tốt nhất - nhóm có sự khác biệt tối thiểu giữa các nhóm - sẽ được trả lại.