Java对象模拟R data.frame

Java对象模拟R data.frame,java,r,dataframe,Java,R,Dataframe,我非常喜欢R中的data.frames,因为您可以在一个数据结构中存储不同类型的数据,并且您有许多不同的方法来修改数据(添加列、合并data.frames等),从数据中提取子集非常容易 是否有具有相同功能的Java库可用?我最感兴趣的是以类似矩阵的方式存储不同类型的数据,并能够提取数据的子集 在Java中使用二维数组可以提供类似的结构,但添加列并随后提取前k个记录要困难得多。对R不是很精通,但您应该看看,特别是s。它们没有提供您想要的确切功能,但是您可以扩展它们,或者它们的规范可以帮助您编写自己

我非常喜欢R中的data.frames,因为您可以在一个数据结构中存储不同类型的数据,并且您有许多不同的方法来修改数据(添加列、合并data.frames等),从数据中提取子集非常容易

是否有具有相同功能的Java库可用?我最感兴趣的是以类似矩阵的方式存储不同类型的数据,并能够提取数据的子集


在Java中使用二维数组可以提供类似的结构,但添加列并随后提取前k个记录要困难得多。

对R不是很精通,但您应该看看,特别是s。它们没有提供您想要的确切功能,但是您可以扩展它们,或者它们的规范可以帮助您编写自己的集合。

最近在Java中工作时,我也发现自己需要数据帧结构。幸运的是,在编写了一个非常基本的实现之后,我能够获得批准,将其作为开源发布。您可以在此处找到我的实现:。欢迎投稿和功能请求。

我刚刚公开了Java 8库的初稿版本,该库提供基于类型化列的数据帧(包括对基本值的支持)。可以通过编程方式(通过简单的BuilderAPI)创建列,也可以从文本文件导入列

有关详细信息,请参阅

该项目从诞生之日起就未雨绸缪——我对反馈/PRs、tia非常感兴趣

Tablesaw()是Java数据框架,始于2015年,正在积极开发中(2018年)。它被设计成在不牺牲易用性的情况下尽可能地可扩展。功能包括按行和列过滤、描述性统计、映射/减少功能、交叉选项卡、绘图、机器学习。Apache许可证

在一次查询测试中,它在2毫秒内从一个12亿分之一的记录表中返回了500多条记录

欢迎投稿、功能请求和反馈。

Morpheus()提供了与R类似的数据帧。它是一种高性能的列存储数据结构,可以在行或列维度中对数据进行排序、切片、分组和聚合。它还支持在内部使用Fork&Join框架对这些操作进行并行处理

您可以轻松地将数据读写到CSV文件、数据库以及专有的JSON格式。还提供从Quandl、Google Finance和其他网站加载数据的适配器


它内置了各种类型的线性回归、主成分分析、线性代数和其他类型的分析支持。功能集仍在增长,但它已经是一个非常强大的框架。

在R中,我们有数据框架,在Python中,我们有熊猫,在Java中: 有来自deeplearning4j的建议

如果你想开始,还有一个版本可以对无处不在的虹膜数据进行数据分析


还有其他一些自定义对象(来自Weka、来自Tensorflow,它们或多或少是相同的)

在以前的工作中,我编写了一个类似的库,使用
Object[][]
(在行主模式下)存储数据。您可以轻松地为所有需要的操作编写方法(根据需要,一次编写一个):添加列、提取列、添加行、提取行、
cbind
rbind
merge
ddply
,等等。因为它们是受R的启发,大多数方法都有一个函数作为参数:例如,要添加一个新列,我将提供一个函数来计算行其余部分的值;要提取行,我将提供一个谓词,以指示保留哪些行。这也是我的想法。但是我想可能已经有一个库支持所有的功能,这样我就不必重新实现它了:)我也希望有一个Java类来实现data.frame。我正在寻找同样的东西,但到目前为止还没有找到任何东西。我能找到的最好的方法是从Java调用R。如果Scala是一个选项,那么鞍形看起来非常有吸引力。我以前没有玩过Guava的桌子,但它们看起来非常类似于R的数据帧。特别是,可以提取特定行或特定列。另一方面,似乎没有一种简单的方法可以将给定的行或列添加到tableNice中,这正是我想要的。您是否有计划扩展古图书馆的功能,例如对数据记录进行排序或仅保留具有特定属性的记录等?我很高兴您喜欢它!分类和切片绝对在我的清单上。哪一个对您来说更紧急?我感兴趣的是基于日期列重新采样数据帧。看看古生物是否提供了这种可能性。。。如果没有,如果对我来说可行,我会加上它@netzwerg,我如何使用PaloDFIT在基于列标准的数据框架上应用过滤器需要注意的是,细木工是GPL3许可的,因此可能不适合许多使用案例。我给了它一个很大的机会,但由于使用了R和Pandas,它是一个非常令人沮丧的数据框架。文档非常稀少,在熊猫身上显而易见的东西在Tablesaw中甚至不可能实现。我仍然在寻找难以捉摸的JVM数据帧框架,它让我像熊猫一样快乐。@horcle_buzz很抱歉你觉得它令人沮丧。确实,它没有很好的文档记录,而且API中存在不一致之处。(我正在移除它们)。但我还没有看到任何pandas示例无法在java中使用tablesaw完成。有一些例子可以学习,这将非常有帮助。如果您知道任何例子,请在github上用pandas代码和数据集打开一个问题。它肯定是Java中可用的更成熟的数据框架框架框架之一,我将给出它。尽管如此,Java中此类工具的现状还是有点令人悲哀。我真的开始到处玩了