#excel #datatable #export #netlogo #behaviorspace
#excel #datatable #экспорт #netlogo #пространство поведения
Вопрос:
Цель этой модели — изучить возможные схемы расселения серых волков в северных Скалистых горах. В модели серым волкам присвоен ph-memory
атрибут, который соответствует таблице пространственных данных.
extensions [ gis table csv]
wolves-own [
...
ph-memory ;; wolves' patch-hunting memory, table includes the patch's hash-id (KEY) and pack-id (VALUE)
...
]
to initialize-wolf [ new-pack-id ]
...
set ph-memory table:make
...
end
to setup
clear-all
setup-gis
file-open (word "Ph-memory-for-run-" behaviorspace-run-number ".csv")
...
end
to go
if not any? wolves [stop]
ask wolves [
where-am-i
...
file-write (table:to-list ph-memory)
end
to where-am-i
let patch-hash-id ([hash-id] of patch-here) ;;Updates the hash-id of the patch the wolf is currently on
if not table:has-key? ph-memory patch-hash-id
[table:put ph-memory patch-hash-id pack-id]
end
Когда я открываю файл Excel для просмотра результатов, вся таблица экспортируется в ОДНУ ячейку. К сожалению, это делает анализ данных спорным, поскольку я не могу легко манипулировать данными.
Мой вопрос: возможно ли экспортировать результаты таблицы данных в Excel и разбить данные на отдельные ячейки / дискретные пары данных (например, [patch-hash-id, pack-id])? Я начал вручную переформатировать данные в столбцы, но это чрезвычайно утомительно!
Есть ли у кого-нибудь рекомендации о том, как я могу эффективно экспортировать данные?
Будем признательны за любую помощь!
Ответ №1:
Здесь две проблемы. file-write
не помещает возврат каретки в конец своего вывода, поэтому последовательные file-write
s помещают все в одну длинную строку. Кроме того, Excel ожидает файл CSV, в котором значения в каждой строке разделены запятыми, и table:to-list
генерирует список списков пар идентификатор / значение, но не разделяет значения запятыми. Расширение CSV прекрасно справляется с csv:to-string
и file-print
обеспечивает возврат каретки. Следующий код должен показать, как все это сочетается.
extensions [table csv]
globals [ph-memory]
to setup
clear-all
set ph-memory table:from-list [[1 2] [3 4] [5 6]]
reset-ticks
end
to go
file-open "c:/users/cstaelin/desktop/testfile.csv"
file-print csv:to-string table:to-list ph-memory
file-close
end
После 4 тиков файл csv выглядит следующим образом
1,2
3,4
5,6
1,2
3,4
5,6
1,2
3,4
5,6
1,2
3,4
5,6
и Excel открывает его правильно.
Комментарии:
1. Спасибо @Charles! Я высоко ценю вашу помощь