在NetLogo中读取csv文件

时间:2018-06-21 00:42:36

标签: csv netlogo

我在读取NetLogo中名为Window.csv的CSV格式文件时遇到问题。您能指导我逐步导入CSV文件吗?我的第一个问题:我是否必须将此文件放置在特定的文件夹中,以及如何将文件的位置引入NetLogo? 我尝试了一些方法: 1-在观察者中编写此代码:

csv:from-file "/C:/Program Files/NetLogo 6.0.3/to/Window.csv"

我遇到此错误:尚未定义名为CSV:FROM-FILE的名称。 2-我在NetLogo的代码空间中尝试过此代码:

set filename “C:\Program Files\NetLogo 6.0.3\Window.csv”
to-report sum-columns [ file ]
  file-open file
  set result csv:from-row file-read-line
  while [ not file-at-end? ] [
    let row csv:from-row file-read-line
    set result (map [?1 + ?2] result row)
  ]
  file-close
  report result
end

我遇到此错误:应使用关键字 3-我尝试了在此站点上找到的以下代码:

extensions [csv]
globals [data variable]
to setup
file-close-all 
file-open "Window.csv"
;; read the data all at once by using csv:from-file
set data csv:from-file "Window.csv"
reset-ticks
end

to go
if file-at-end? [stop]
;; extract value from the list, using item 0 to remove the list, and just keep the value
set variable item 0 item ticks data
tick  
if ticks = length data [stop]
show variable
end

但是什么也没发生。 提前谢谢。

1 个答案:

答案 0 :(得分:3)

最简单的方法是将NetLogo模型(.nlogo)和CSV文件(.csv)保存在同一文件夹中,如下所示:

enter image description here

然后,您可以像在第二个示例中那样使用csv扩展名,如下所示:

extensions [csv]
globals [ data ]

to setup
  ca
  set data csv:from-file "example_data.csv"
  print data
  reset-ticks
end

运行该代码后,您的示例数据存储在data变量中。您也可以类似的方式使用相对寻址。例如,如果您将数据存储在与模型相同的文件夹中的一个文件夹中,则:

enter image description here

data_folder包含您要加载的CSV文件,您可以这样做

set data csv:from-file "data_folder/example_data.csv"

如果您不知道文件相对于模型的存储位置,则始终可以提供完整的地址。如果我的C驱动器上有一个名为“ data_folder”的文件夹,其中包含我的“ example_data.csv”,则可以这样调用:

set data csv:from-file "C:/data_folder/example_data.csv"


编辑-详细信息:

我将通过上面的第一个示例向您展示我从第一个示例中获得的输出。

enter image description here

名为“ example_data.csv”的文件与NetLogo文件存储在同一文件夹中。在我的NetLogo文件中,我只有:

extensions [csv]
globals [ data ]

to setup
  ca
  set data csv:from-file "example_data.csv"
  print data
  reset-ticks
end

然后,在我的界面上,我放置了一个名为setup的按钮,以在界面上调用上述过程:

enter image description here

如果按下setup按钮,将执行代码并运行print data语句,以便在命令中心看到结果:

enter image description here

由此,您可以看到已经加载了.csv,使得每一行都作为列表存储在名为data的列表中。