gpt4 book ai didi

netlogo - 加载重复项/合并变量

转载 作者:行者123 更新时间:2023-12-04 09:31:21 26 4
gpt4 key购买 nike

我正在加载带有大量重复项的动物数据,我试图将它们合并到一个代表单个动物的代理中。 csv 文件如下所示:
动物 ID - 组 ID
1 - A
2 - A
3 - A
4 - A
1 - 乙
2 - 乙
对于这个例子,我希望生成 4 个独特的动物代理,其中包含与它们相关联的组的列表。动物 1 的列表将是 [A, B],而动物 4 的列表将只是 [A]。
到目前为止,我正在使用以下方法加载 csv:

   csv:from-row file-read-line
create-animal 1 [
set Animal-ID item 0 data
set group-ID item 1 data]


Which produces 6 animals with one group id each.

But how should I cull the duplicate animals?

最佳答案

如果您有一个如下所示的 csv:

id, group
1,A
2,A
3,A
4,A
1,B
2,B
您可以将 csv 作为列表加载,提取独特的动物,然后使用独特的动物 ID 过滤原始列表以获取该动物所属的独特组:
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
希望有帮助!
enter image description here

关于netlogo - 加载重复项/合并变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62827119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com