目前我正在尝试将我的数据从 Netlogo 导出到 CSV 文件,然后使用以下代码将其加载到 Tableau 中。

to write-result-to-file
  ; if nothing to write then  stop
  if empty? Result-File [stop]
  ; Open file
  file-open Result-File

  ; Write into the file
  file-print (word Days-passed "," num-susceptible "," num-infected "," num-recovered)
  ; Close file
  file-close
end

遇到麻烦的地方是当我将数据加载到 tableau 时,它没有正确地获取度量/维度。在将行/列导出到 CSV 文件之前,Netlogo 中有没有办法指定它们的标题?

最佳答案

这个问题在 NetLogo 用户上被问过和回答过。 James Steiner 的答案复制在下面,代码中的一些错别字已更正。它真的很优雅。

您可以在设置期间将标题打印到结果文件中!

您可能希望创建一个子例程来处理对文件的所有写入,因此您不必重复代码:

to write-csv [ #filename #items ]
  ;; #items is a list of the data (or headers!) to write.
  if is-list? #items and not empty? #items
  [ file-open #filename
  ;; quote non-numeric items
  set #items map quote #items
  ;; print the items
  ;; if only one item, print it.
  ifelse length #items = 1 [ file-print first #items ]
  [file-print reduce [ (word ?1 "," ?2) ] #items]
  ;; close-up
  file-close
  ]
end

to-report quote [ #thing ]
  ifelse is-number? #thing
  [ report #thing ]
  [ report (word "\"" #thing "\"") ]
end

你会用
write-csv "myfilename.csv" ["label1" "label2" "label3"]

在设置例程中写入列标题,然后
write-csv "myfilename.csv" [10.0 "sometext" 20.3]

写入一行数据 - 在这种情况下是一个数字、一个字符串和另一个数字。

关于csv - Netlogo 导出/Tableau 问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22462168/

10-12 19:22