Dividindo uma lista com base em outros valores de lista no Mathematica
No Mathematica, eu tenho uma lista de coordenadas de pontos
size = 50;
points = Table[{RandomInteger[{0, size}], RandomInteger[{0, size}]}, {i, 1, n}];
e uma lista de índices de cluster a esses pontos pertencem
clusterIndices = {1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1};
qual é a maneira mais fácil de dividir os pontos em duas listas separadas com base nos valores clusterIndices?
EDIT: A solução que eu vim com:
pointIndices =
Map[#[[2]] &,
GatherBy[MapIndexed[{#1, #2[[1]]} &, clusterIndices], First],
{2}];
pointsByCluster = Map[Part[points, #] &, pointIndices];
Existe uma maneira melhor de fazer isso?