如何在Netlogo中逐行导入CSV?

时间:2017-11-17 06:21:30

标签: string list netlogo

如何从CSV文件导入数据并逐行转换,以便我可以在我的程序中使用它?我希望它是一个字符串,但我不断收到错误消息,它仍然是列表或列表列表。

我正在尝试复制Netlogo用户手册中给出的示例,以便每个刻度读取一行文件(见下文)。我创建了一个简单的例子。

extensions [CSV]
globals [date]


to setup
  clear-all
  file-close-all
  file-open "S&PDate.csv"
  set date current-date
  reset-ticks
end

to go
   if file-at-end? [stop]
   set date current-date
   tick
end

to-report current-date 
   file-open "S&PDate.csv"
   let result csv:from-row file-read-line 
   while [ not file-at-end? ] [
   let row csv:from-row file-read-line
   set result (map result row)
     ]
   file-close
   report result
end

From NetLogo User Manual

1 个答案:

答案 0 :(得分:2)

我的想法是一次性导入CSV数据作为列表,然后通过刻度数(即逐行)从列表中提取值。

extensions [csv]
globals [data variable]

to setup
file-close-all 
file-open "S&PDate.csv"
;; read the data all at once by using csv:from-file
set data csv:from-file "S&PDate.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

希望它有所帮助。如果您需要进一步澄清,请与我们联系。