在NetLogo中读取csv文件

在NetLogo中读取csv文件,csv,netlogo,Csv,Netlogo,我在读取NetLogo中名为Window.CSV的CSV格式文件时遇到问题。请您一步一步地指导我导入CSV文件好吗?我的第一个问题:我必须把这个文件放在一个特定的文件夹或没有,以及如何介绍该文件的位置NetLogo? 我尝试了一些方法: 1-在observer中编写此代码: csv:from-file "/C:/Program Files/NetLogo 6.0.3/to/Window.csv" 我遇到了这个错误:没有定义任何名为CSV:FROM-FILE的内容。 2-我在NetLogo的代码

我在读取NetLogo中名为Window.CSV的CSV格式文件时遇到问题。请您一步一步地指导我导入CSV文件好吗?我的第一个问题:我必须把这个文件放在一个特定的文件夹或没有,以及如何介绍该文件的位置NetLogo? 我尝试了一些方法: 1-在observer中编写此代码:

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
但什么也没发生。
非常感谢。

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

然后,您可以使用第二个示例中开始的
csv
扩展,如下所示:

extensions [csv]
globals [ data ]

to setup
  ca
  set data csv:from-file "example_data.csv"
  print data
  reset-ticks
end
运行该代码后,示例数据存储在
data
变量中。您还可以以类似的方式使用相对寻址。例如,如果数据存储在与模型位于同一文件夹中的文件夹中:

如果
data\u文件夹
包含要加载的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"

编辑-更多详细信息:

我将使用此示例向您展示我从上面的第一个示例中获得的输出。csv:

该文件名为“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
的按钮,在界面上调用上述过程:

如果我按下
设置
按钮,代码将被执行,并且
打印数据
语句将运行,以便在命令中心看到结果:


从中,您可以看到.csv已加载,因此每一行都存储为名为
data
的列表中的一个列表

它可以在任何文件夹中。但是,您需要包括路径和文件名。您从文档中复制了文本,但没有理解它,因此路径没有意义。您的文件“Window.csv”实际存储在哪个文件夹中?非常感谢您的帮助,我完成了所有步骤,但是,我无法看到get输出并将csv数据带到我的代码空间。@Sina很抱歉听到这个消息,但您需要为我或其他用户提供更多信息,以便能够提供帮助。例如,什么不起作用?你收到错误消息了吗?NetLogo文件存储在哪里,CSV文件存储在哪里?您尝试了上述示例中的哪种方法?我一次又一次地感谢您的帮助,我在桌面上有一个文件夹,其中包含CSV文件格式和我的模型NetLogo文件。然后我复制了与上面相同的所有代码。我没有收到任何错误,但是CSV文件没有插入代码空间。我想知道关于CSV扩展。我是否下载CSV扩展并将其复制到以下地址:C:\Program Files\NetLogo 6.0.4\app\extensions\CSV?我从下载了CSV扩展名,并在C:\Program Files\NetLogo 6.0.4\app\extensions\CSV中进行了复制,但没有得到任何结果。我可以在NetLogo中导入CSV数据,我可以在命令中心部分看到它们。是吗?@Sina-1。CSV扩展随标准NetLogo安装一起加载,您无需将其复制到任何地方。2.如果您将CSV数据导入NetLogo,它将不会自动“加载”到命令中心,因为命令中心不适用于此。命令中心允许您在控制台中键入命令(通常是向观察者),并输出命令的结果,如
打印
显示
,等等。您必须告诉NetLogo显示变量,例如上面第一个示例中的
打印数据
行。