我有一个包含20个项目的列表,我想计算列表中每个项目的出现次数。我知道下面的代码
k
但我不想写20行像
to-report frequency [i lst]
report length filter [? = i] list
end
答案 0 :(得分:3)
这是:
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])