Если у вас есть CSV, который выглядит так:
id, group
1,A
2,A
3,A
4,A
1,B
2,B
Вы можете загрузить CSV в виде списка, вытащить уникальных животных, затем отфильтровать исходный список, используя уникальные идентификаторы животных, чтобы захватить уникальные группы для которому принадлежит это животное:
extensions [ csv ]
breed [ animals animal ]
animals-own [ animal-id group-id ]
to setup
ca
; Load animal data as a list of lists, drop the headers
let animalData but-first csv:from-file "exampleAnimals.csv"
print animalData
; Get the unique animal ids
let animalIds remove-duplicates map [ i -> first i ] animalData
print animalIds
foreach animalIds [ id ->
create-animals 1 [
; Set the id
set animal-id id
; Filter the animal data by the id of the current animal
let filtered filter [ row -> first row = id ] animalData
; Map to pull the group id as a list and assign to the animal
set group-id map [ i -> last i ] filtered
fd 1
]
]
reset-ticks
end
Надеюсь, это поможет!
введите описание изображения здесь