List 计算列表中每个项目的出现次数

List 计算列表中每个项目的出现次数,list,netlogo,List,Netlogo,我有一个包含20个项目的列表,我想计算列表中每个项目出现的次数。我知道下面的代码 to-report frequency [i lst] report length filter [? = i] list end 但我不想写这样的20行 let C1 frequency 1 (list1) let C2 frequency 2 (list1) . . . let C20 frequency 20 (list1) 那就是: map [frequency ? list1] n-value

我有一个包含20个项目的列表,我想计算列表中每个项目出现的次数。我知道下面的代码

to-report frequency [i lst]
    report length filter [? = i] list
end
但我不想写这样的20行

let C1 frequency 1 (list1)
let C2 frequency 2 (list1)
.
.
.
let C20 frequency 20 (list1)
那就是:

map [frequency ? list1] n-values 20 [? + 1]
样本运行:

observer> set list1 [1 4 4 7 10 10 10 14]
observer> show map [frequency ? list1] n-values 20 [? + 1]
observer: [1 0 0 2 0 0 1 0 0 3 0 0 0 1 0 0 0 0 0 0]
对于NetLogo 6,OP的功能如下:

to-report frequency [an-item a-list]
    report length (filter [ i -> i = an-item] a-list)
end
制作频率表的修改如下:

map [ i -> frequency i list1] (n-values 20 [i -> i]) 
那就是:

map [frequency ? list1] n-values 20 [? + 1]
样本运行:

observer> set list1 [1 4 4 7 10 10 10 14]
observer> show map [frequency ? list1] n-values 20 [? + 1]
observer: [1 0 0 2 0 0 1 0 0 3 0 0 0 1 0 0 0 0 0 0]
对于NetLogo 6,OP的功能如下:

to-report frequency [an-item a-list]
    report length (filter [ i -> i = an-item] a-list)
end
制作频率表的修改如下:

map [ i -> frequency i list1] (n-values 20 [i -> i])