首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在netlogo中使用逗号从列表中分隔值?

如何在netlogo中使用逗号从列表中分隔值?
EN

Stack Overflow用户
提问于 2021-08-20 22:35:41
回答 1查看 40关注 0票数 0

场景:我有一个代码,可以根据下面的代码导出海龟坐标:

代码语言:javascript
运行
复制
to path
  file-open (word fileName ".csv")
  file-print (word self xcor " " ycor)
  file-close
end

结果类似于:

代码语言:javascript
运行
复制
(turtle 1)[1 1 1 1 1 2] [4 4 4 2 1 5]

问:我如何导出这个相同的列表,但它的项目用逗号分隔?例如,从[1 2 1 1 1][1,2,1,1,1]

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-20 23:57:26

如果你想在事后用R或其他语言处理这个问题,我建议你可以使用长格式的报告(例如,每一行都表示一只乌龟,一个记号或类似的符号,以及坐标)--我觉得这样更容易处理。

为了回答你的实际问题,一种方法是手动将每个坐标列表折叠成逗号分隔的字符串。例如,请参阅下面的玩具模型。

简单设置:

代码语言:javascript
运行
复制
extensions [csv]

globals [ test ]

turtles-own [ xcor-list ycor-list ]

to setup 
  ca
  crt 10 [
    set xcor-list []
    set ycor-list []
  ]
  repeat 5 [
    ask turtles [
      rt random 90 - 45
      fd 1
      set xcor-list lput pxcor xcor-list
      set ycor-list lput pycor ycor-list
    ]
  ]    
  reset-ticks
end

这位记者实际上正在做的工作是将列表折叠成一个简单的字符串用于输出:

代码语言:javascript
运行
复制
to-report collapse-string-list [str-list]
  report reduce word ( sentence map [ str -> word str ", " ] but-last str-list last str-list )
end

此块将所需的海龟变量拉入列表中,调用列表上的collapse-string-list报告器,然后导出为csv:

代码语言:javascript
运行
复制
to output-coord-file
  let all-turtles sort turtles
  
  ; Pull coordinates from each turtle
  let who-coord-list map [ 
    current-turtle ->
    (list 
      [who] of current-turtle 
      collapse-string-list [xcor-list] of current-turtle
      collapse-string-list [ycor-list] of current-turtle
  )] all-turtles
  
  ; Add headers
  set who-coord-list fput ["who" "x" "y"] who-coord-list
  
  ; Export
  csv:to-file "toy.csv" (map [ row -> (map [i -> (word i)] row ) ] who-coord-list)
end

输出:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68868671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档