CSVファイルからデータをインポートし、それをプログラムで使用できるように行単位で変換するにはどうすればよいですか?私はそれを文字列にしたいが、それでもまだリストかリストのリストであるというエラーメッセージが出てくる。NetlogoでCSVを1行ずつインポートするにはどうすればよいですか?
私は、Netlogo User Manualに記載されている例をコピーして、ティックごとにファイルを1行読み込んでいます(下記参照)。私は簡単な例を作りました。
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
なぜ「行単位」ですか?それは必須条件ですか?それが巨大なファイルでない限り、 'csv:from-file'を使ってファイル全体を一読してください。その後、いつでも結果の項目を取得できます。 (別に 'map'の使い方が間違っています) – Alan
なぜ結果を文字列にしたいのですか? CSVは、リストのリストを格納するための形式です。ファイルの生の文字列の内容だけが必要な場合は、NetLogoに組み込まれた 'file-'プリミティブを使用することができます。 –