netlogo将字符串转换为嵌套列表中的数字

netlogo将字符串转换为嵌套列表中的数字,netlogo,Netlogo,我正在NetLogo和igraph之间传输(在R中)。从igraph返回的一些信息是两级嵌套字符串列表。典型示例如下所示: [ ["1" "2" "3"] ["4"] ] 我想将内部字符串转换为数字,同时保留列表结构。因此,这个例子将变成: [ [1 2 3] [4] ] 我猜我需要一个map和从字符串读取的组合(可能还有其他列表操作,比如lput和foreach,因为嵌套),但我就是不能让它工作 有什么想法吗?基本上,将每个列表映射到只包含int值的映射列表。 请尝试以下操作: show

我正在NetLogo和igraph之间传输(在R中)。从igraph返回的一些信息是两级嵌套字符串列表。典型示例如下所示:

[ ["1" "2" "3"] ["4"] ]
我想将内部字符串转换为数字,同时保留列表结构。因此,这个例子将变成:

[ [1 2 3] [4] ]
我猜我需要一个
map
从字符串读取的组合(可能还有其他列表操作,比如
lput
foreach
,因为嵌套),但我就是不能让它工作


有什么想法吗?

基本上,将每个列表映射到只包含int值的映射列表。 请尝试以下操作:

show map [ map [ read-from-string ? ] ?] [ ["1" "2" "3"] ["4"] ]

为了好玩,这里有一个可以转换任意数量嵌套级别的版本:

to-report read-from-list [ x ]
  report ifelse-value is-list? x
    [ map read-from-list x ] 
    [ read-from-string x ]
end
例如:

observer> print read-from-list [ ["1" "2" "3" ] ["4" [ "5" "6" ] ] ]
[[1 2 3] [4 [5 6]]]

谢谢,我将为真正的示例编写代码,看看我是如何做到您实际上不需要从字符串读取的
周围的方括号的。您只需执行
map[map read from string?]…