Мне нужно сгруппировать объекты, которые были получены случайным образом, на основе идентификатора, который могут совместно использоваться двумя объектами.
Вот мой текущий скрипт:
$allRows = Import-CSV C:\Temp\pk.csv
$chosenHouseholdIDs = ($allRows | Get-Random -Count $allRows.count).id
$chosenOnes = $allRows | Where-Object id -in $chosenHouseholdIDs
$i = 1
foreach ($chosenOne in $chosenOnes)
{
"$($i),$($chosenOne.name)"
$i = $i + 1
}
Файл pk.csv содержит 130 строк. У каждой строки есть имя и идентификатор домохозяйства. Цель идентификатора домохозяйства - связать близнецов. Поэтому, если один близнец вытянут случайным образом, то другой близнец должен вытянуть следующий, или их нужно сгруппировать.
Пример ввода выглядит следующим образом:
householdID,name
7745,Josiah Moon
7746,Finleigh Hayes
7747,Evelyn Brandon
7749,Braedyn Thompson
7750,William Doughty
7751,Madison Vaughn
7751,Morgan Vaughn
7752,Peyton Benford
7753,Robert Waldrop
7754,Johnathan Ford
7755,Cheyenne Holmes
7756,Reid Ruark
Ожидаемый результат будет чем-токак это:
rowNumber,householdID,name
1,7750,William Doughty
2,7752,Peyton Benford
3,7753,Robert Waldrop
4,7755,Cheyenne Holmes
5,7747,Evelyn Brandon
6,7745,Josiah Moon
7,7746,Finleigh Hayes
8,7756,Reid Ruark
9,7751,Morgan Vaughn
10,7751,Madison Vaughn
11,7754,Johnathan Ford
12,7749,Braedyn Thompson
Обратите внимание, что два имени с идентификатором домохозяйства 7751 перечислены в случайном порядке, но последовательно в списке. Идентификатор домохозяйства не обязательно должен быть частью результата. Я просто включил это здесь в целях иллюстрации.