netlogo 将字符串转换为嵌套列表中的数字
netlogo convert string to numbers within nested lists
我正在 NetLogo 和 igraph(在 R 中)之间转换。从 igraph 返回的一些信息是 2 级嵌套字符串列表。典型示例如下所示:
[ ["1" "2" "3"] ["4"] ]
我想将内部字符串转换成数字,同时保留列表结构。所以这个例子会变成:
[ [1 2 3] [4] ]
我猜我需要 map
和 read-from-string
的组合(由于嵌套,可能还有其他列表操作,如 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]]]
我正在 NetLogo 和 igraph(在 R 中)之间转换。从 igraph 返回的一些信息是 2 级嵌套字符串列表。典型示例如下所示:
[ ["1" "2" "3"] ["4"] ]
我想将内部字符串转换成数字,同时保留列表结构。所以这个例子会变成:
[ [1 2 3] [4] ]
我猜我需要 map
和 read-from-string
的组合(由于嵌套,可能还有其他列表操作,如 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]]]