Если вы счастливы выполнить некоторую постобработку с R или что-то после факта, тогда table:to-list
может быть всем, что вам нужно.Например, в простом примере настройки, таком как:
extensions [ table ]
globals [ example-table ]
turtles-own [ turtle-list ]
to setup
ca
crt 3 [
set turtle-list ( list random 10 one-of [ "A" "B" "C" ] random 100 )
]
set example-table table:make
foreach sort turtles [
t ->
table:put example-table ( word "turtle_" [who] of t ) [turtle-list] of t
]
reset-ticks
end
и to-report
для очистки каждого элемента таблицы таким образом, что первый элемент является ключом, а все остальные элементы являются элементами в списке:
to-report easier-read-table [ table_ ]
let out []
foreach table:to-list table_ [ i ->
set out lput ( reduce sentence i ) out
]
report out
end
Вы можете настроить свой эксперимент BehaviorSpace таким образом, чтобы один из ваших репортеров был таким репортером, что-то вроде:
Чтобы получитьфайл .csv, например:
Где столбец репортера выводит список списков, которые вы можете обрабатывать так, как вам нравится.
Однако , я бы, вероятно, не использовал для этого базовый вывод BehaviorSpace, а вместо этого вызвал бы в эксперименте вызов для вызова процедуры вывода таблицы вручную.Например, используя расширение csv
для выполнения этой процедуры output-table
:
to output-table [ filename_ table_ ]
let out [["key" "col1" "col2" "col3"]]
foreach table:to-list table_ [ i ->
set out lput ( reduce sentence i ) out
]
csv:to-file filename_ out
end
Это выводит гораздо более готовую к анализу таблицу, если вам неудобнее очищать вывод списка спискасписки, которые, насколько я знаю, это то, что вы получите из вывода BehaviorSpace.Таким образом, вы можете позвонить в конце эксперимента, например:
Чтобы получить таблицу типа:
С этим немного приятнее иметь дело.Очевидно, вы можете изменить это, чтобы при необходимости чаще сообщать, например:
, который будет выводить таблицу при каждом тике эксперимента (вы можететакже сделайте это в своем коде, чтобы сделать его немного легче).