assign values to turtles by searching through CSV header row in Netlogo

人盡茶涼 提交于 2019-12-24 07:13:42

问题


I have 3 producers. Each has 200 consumers as turtles who have purchased laptops. All producers sell laptops. The laptops have 3 kinds of features : size of the screen, price, battery life. Each has some levels. For example battery life has 5 hours, 12 hours, 24 hours, 30 hours. Each producer has some information about how consumers have rated these items based on what they have experienced that is stored in a csv file. So the CSV file header is something like this :

Consumer 12 13 13.5 14 14.5 15 500 600 750 650 550 700 5 12 24 30

( To exaplin the header : 12 - 15 represent levels of screen size, 500 - 700 price, 5 - 30 battery life in hours)

Each producer needs to analyze the data stored in the CSV file. I used the example code in the library to use a csv file which creates a turtle and assigns values to it using item.

to read-turtles-from-csv


file-close-all ; close all open files
if  not file-exists? "turtles.csv" [
    user-message "No file 'turtles.csv' exists! Try pressing WRITE-TURTLES-TO-CSV."
    stop
  ]

  file-open "turtles.csv" ; open the file with the turtle data

  ; We'll read all the data in a single loop
  while [ not file-at-end? ] [
    ; here the CSV extension grabs a single line and puts the read data in a list
    let data csv:from-row file-read-line
    ; now we can use that list to create a turtle with the saved properties
    create-turtles 1 [
      if    item 2 data >    item 2 data   ...
     if item 7 data < item 8 data ...

    ]
  ]

  file-close ; make sure to close the file
end

Here the csv file should not have a header row. The first row is selected for turtle 1. If we need to compare the consumer's rate for 2 levels of screen size like 13 and 13,5 , here it can do that :

If item 2 > item 3 ...

So far it works pretty well. Howeber, I need to use the header. For instance, I want to create a situation when a user chooses a number, if it is in one of the columns (is in the header), then the value gets selected. Otherwise, if the value does not exist in the header, somthing else should be done. Can I make the code recognize CSV header while working with agents?

Thanks,

来源:https://stackoverflow.com/questions/44769763/assign-values-to-turtles-by-searching-through-csv-header-row-in-netlogo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!