gpt4 book ai didi

csv - 如何使用 netlogo 读取 .CSV 文件?

转载 作者:行者123 更新时间:2023-12-04 17:34:30 25 4
gpt4 key购买 nike

这些天我开始使用 netlogo,所以我遇到了一些我没有找到解决方法的问题。
我必须阅读一个巨大的 .csv 文件,在网上得到了这个代码:

to openFile
file-open "testeCsv.csv"
set csv file-read-line
set csv word csv "," ; add comma for loop termination

let mylist [] ; list of values
while [not empty? csv]
[
let $x position "," csv
let $item substring csv 0 $x ; extract item
carefully [set $item read-from-string $item][] ; convert if number
set mylist lput $item mylist ; append to list
set csv substring csv ($x + 1) length csv ; remove item and comma
set fileList mylist
]
set fileList mylist
show fileList
end

该文件包含这一行:“1;0;0;65;0;2;45;0;-0,018961934”
这段代码的输出是:“1 18961934”
帮助 :/

最佳答案

首先,CSV 表示带有点小数分隔符的逗号分隔值,而不是带有逗号小数分隔符的分号分隔值。参见 RFC 4180。虽然有些人出于民族主义的原因反对这一点,但科学界需要采用现有的标准。基于代理的建模是科学界的一部分。

现在让我们分析一下当你用这段代码解析你的文件时会发生什么。它将该行作为字符串读入您的 csv多变的。它将 $x 设置为 20 并将子字符串提取到逗号。使用 read-from-string 将 "1;0;0;65;0;2;45;0;-0"视为在命令中心输入,所以你只得到数字 1 ,因为从第一个分号开始的所有内容都是注释。 1放入mylistcsv变量缩短为 018961934 .阅读此内容后,您会收到 18961934因为 NetLogo 忽略了前导 0 .

这一切都是因为您没有真正的 CSV 文件。所以如果你想使用这段代码来解析它,你需要使用一个真正的CSV文件。

关于csv - 如何使用 netlogo 读取 .CSV 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27096948/

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