【发布时间】:2014-01-31 19:30:19
【问题描述】:
采用一个函数,该函数输入一个集合、集合集合、集合、嵌套向量,其中包含集合等。因此,输入有时不是同一类型。如何将这样的输入转换为嵌套向量结构?在第一种情况下,我会使用
(into [] #{1 2 3 4})
将 into 转换为向量。 但是在集合中集合的情况下,我无法输出嵌套向量,即
#{1 2 3 #{1 2 3}}
同样,我可能有一个输入,例如
[1 2 3 (4 5 6)]
我想输出
[1 2 3 [4 5 6]]
这个想法是,有时我需要深入了解并挑选出一个集合或集合以变成一个向量。是否有可能拥有一个函数,它通常可以处理许多不同的结构输入并输出嵌套向量结构。即一个函数可以概括上述例子吗?我对样本进行了一些简化,例如我可能有诸如
之类的输入[[[1 2 3 4] [#{1 2 3 4} 2 3 4] [(1 2 3 4) 2 3 4]]]
为了更深入地了解我正在尝试处理的函数,请考虑语言 R 中的函数 C。该函数的重要性在于向量结构在统计/数据分析中的重要性。
【问题讨论】:
-
如果您用 R 语法写出您的输入和所需的输出,可能会有所帮助。
-
您可能正在寻找的东西在 R 中被称为“列表”。列表是非结构化的,允许您以任何您喜欢的嵌套方式存储数据。使用 'list()' 函数初始化一个列表,然后使用
list_variable[[name]]<-...语法存储东西。检索时,“unlist”函数会将内容转换为矢量。 -
我想在 Clojure 中编写函数,但前提源于 R 中的函数 C。
标签: r vector clojure clojure-contrib