用于多维数据的Ruby数据管理器

时间:2012-08-24 15:02:50

标签: ruby multidimensional-array

我正在寻找一个RUBY模块(可能是一个宝石)来处理2或3或4维数据。没有UI只是数据管理部分。它可能是阵列上的贴面。我还需要排序和过滤等功能。例如,这只是一个例子:)

a = MultiDim.new(2)
a.dim_name(0) = "Costs"
a.dim_name(1) = "Years"
a.load_data....
a.filter(:years, :non_nil)
a.sort(:costs)
a.acccess(years: 1990..1999) => a hash by costs.

等。等等。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

daru是一个宝石,用于ruby中的数据分析。

它正在积极开发中,您可以在未来几周内获得一些非常令人兴奋的功能。

它适用于2个基本数据结构,VectorDataFrame

您可以先创建数据框:

df = Daru::DataFrame.new({costs: [100,200,300,400], years: [2013,2014,2012,2011]})

您可以调用矢量并按照这种方式对其进行排序:

df.costs.sort

过滤数据:

df.keep_row_if do |row|
  row[:costs] == 100
end

这将产生如下的DataFrame:

    costs years 
0   100  2013 

对于多维数据,您可以将DataFrame嵌套在DataFrame中。

这是我的第一个答案,所以请原谅我有任何疑虑!

答案 1 :(得分:0)

听起来你想要Ruby的内置Matrix类作为起点。

排序是从Enumerable继承的,但我会使用sort_by而不是sort来提高速度,简化并根据您的需要。 sort_by在我看来,它更适合处理多维数组。