Csv Netlogo-项预期输入为字符串,但实际输入为零

Csv Netlogo-项预期输入为字符串,但实际输入为零,csv,netlogo,Csv,Netlogo,这是一个与前一篇文章相关的后续问题。我有16位笔记本电脑消费者的评论评级数据,他们要么满意(16人),要么不满意(6人)。它们被定义为海龟,通过询问布尔变量是否满足,可以区分它们?还是不满意?这是真的。 数据集如下所示: extensions [csv matrix array nw] globals [ rowcounter csv ii Sc-headings Bat-headings Pr-headings income-headings average-head

这是一个与前一篇文章相关的后续问题。我有16位笔记本电脑消费者的评论评级数据,他们要么满意(16人),要么不满意(6人)。它们被定义为海龟,通过询问布尔变量是否满足,可以区分它们?还是不满意?这是真的。

数据集如下所示:

extensions [csv matrix array nw]

globals
[
  rowcounter
  csv 


 ii
  Sc-headings Bat-headings Pr-headings income-headings  average-headings; 

  Sc-set 
  Bat-set 
  Pr-set 

  prodcount ;num of producer agents

]

turtles-own [    
  turtle-Sc-list
  turtle-Bat-list
  turtle-Pr-list
  turtle-income-list
  turtle-average-list

  review-set 

  satisfied?
  dissatisfied?

  LapUtl-set 

  ScPWU
  BatPWU
  PrPWU
]

to setup
  clear-all
  file-close-all

  set rowcounter 1
  proddata
  readdataset
 reset-ticks
end

breed [ producers producer ]
to go

        Reviewrating
    end
to intlz
  set Sc-set []
  set Bat-set []
  set Pr-set []

end
读取数据集:

to readdataset
  file-close-all ; close all open files
  file-open "turtle_details.csv"
  let headings csv:from-row file-read-line           ;header is read
  ; Splitting headings of the csv file into 5 categories representing screen 
  ; size data, battery charge data, Price data, income data, max age of an owner

  set Sc-headings sublist headings 2 7   
  set Bat-headings sublist headings 7 12
  set Pr-headings sublist headings 12 17
  set income-headings sublist headings 17 18
  set average-headings sublist headings 18 length headings

  while [ not file-at-end? ] [
  let data csv:from-row file-read-line

  create-turtles 1 [

       set shape "person"
       set size 2.5
       ifelse rowcounter <  11
      [
       set color 125
       set satisfied? true  
       set dissatisfied? false                                        ;                       
  ]
     ;else
      [
        set color 65

        set satisfied? false 
       set dissatisfied? true                                           ;                       
  ]


       setxy random-xcor random-ycor
       ; hide-turtle


       set turtle-Sc-list sublist data 2 7 
       set turtle-Bat-list sublist data 7 12
       set turtle-Pr-list sublist data 12 17

       set turtle-income-list sublist data 17 18
       set turtle-averageage-list sublist data 18 length data


  ]
  set rowcounter rowcounter + 1
   ]

  file-close-all
end
应该从数据集中提取的东西是对消费者的评估(评论)。每个消费者都有一个评审集,该评审集首先是一个空集[],然后它将保留与三个生产者的三个评审值相对应的值

to reviewrating

ask turtles   [

          set review-set []
     ]

 ask turtles [

          set ii 0
          while [ii < 3 ][
             set ScPWU turtle-Sc-rating item ii Sc-set
             set BatPWU turtle-Bat-rating item ii Bat-set
             set PrPWU turtle-Pr-rating item ii Pr-set


             set LapUtl-set lput (ScPWU  + BatPWU + PrPWU) LapUtl-set

             set ii ii + 1


        ] ; while

      ];ask

end
    to-report turtle-Sc-rating [Sc]

      let pos position Sc Sc-headings

      if  is-number? position Sc Sc-headings
          [
           let turt-Sc-rate-value item pos turtle-Sc-list
            report turt-Sc-rate-value
          ]

    end

    to-report turtle-Bat-rating [Bat]
      let pos position Bat Bat-headings
      if  is-number? position Bat Bat-headings
          [
           let turt-Bat-rate-value item pos turtle-Bat-list
            report turt-Bat-rate-value
          ]

        ;***************

    end
    to-report turtle-Pr-rating [Pr]
      let pos position Pr Pr-headings
      if is-number? position Pr Pr-headings
          [
           let turt-Pr-rate-value item pos turtle-Pr-list
            report turt-Pr-rate-value
          ]

    end
如何解决tihs


谢谢,

我怀疑您没有正确报告错误。我怀疑错误是
error:ITEM期望此输入是字符串或列表,但得到的是数字。下面是一个产生此错误的方法示例:
项0
。如果我是对的,那么您正在运行代码
让turt Sc rate value item pos turtle Sc list
,而
turtle Sc list
的值为
0
。要确认这一点,请将此代码替换为

ifelse (is-list? turtle-Sc-list)
  [let turt-Sc-rate-value item pos turtle-Sc-list]
  [error (word "turtle-Sc-list is not a list.")]

现在运行代码。如果它引发错误
“列表不是列表。”
,则您可以搜索无法正确初始化此变量的原因。

错误说明了什么?你提到你以前会遇到一个不同的错误,这就是我假设的标题,但是你现在遇到的错误是什么?谢谢你的回复。通过向上移动“go”过程并在设置后进行操作,修复了先前的错误。这是关于程序的顺序。现在,错误显示了我的问题
标题中的内容:“项目预期输入为字符串,但得到的却是零”没有文件或其他实际运行所需的东西,很难看到发生了什么。我不清楚
LapUtl
向量与错误之间的关系,因为它似乎没有在相关过程中使用。我建议您对打印语句进行一些基本调试。在海龟Sc评级程序中,执行一些打印语句(例如
print Sc
print pos
),以确保变量内容符合您的预期。如果这不能帮助你自己解决问题,试着给我们问题的过程,调用它的过程,以及一些变量的值。
let turt-Sc-rate-value **item** pos turtle-Sc-list
ifelse (is-list? turtle-Sc-list)
  [let turt-Sc-rate-value item pos turtle-Sc-list]
  [error (word "turtle-Sc-list is not a list.")]