web-dev-qa-db-fra.com

Objet Java analogue à R data.frame

J'aime beaucoup les data.frames in R car vous pouvez stocker différents types de données dans une même structure de données et que vous disposez de nombreuses méthodes différentes pour modifier les données (ajouter une colonne, combiner des data.frames, ...), c'est très simple extraire un sous-ensemble des données, ...

Existe-t-il une bibliothèque Java disponible ayant les mêmes fonctionnalités? Je suis surtout intéressé à stocker différents types de données sous forme de matrice et à en extraire un sous-ensemble. 

L'utilisation d'un tableau à deux dimensions en Java peut fournir une structure similaire, mais il est beaucoup plus difficile d'ajouter une colonne et d'extraire ensuite les k premiers enregistrements.

38
Michael

Je viens d’ouvrir une première version préliminaire de Paleo , une bibliothèque Java 8 offrant des trames de données basées sur des colonnes typées (y compris la prise en charge des valeurs primitives). Les colonnes peuvent être créées par programme (via une API de générateur simple) ou importées à partir d'un fichier texte.

Veuillez vous référer au README pour plus de détails.

Le projet est encore humide depuis sa naissance - je suis très intéressé par le feedback/PRs, tia!

14
Rahel Lüthy

Tablesaw ( https://github.com/jtablesaw/tablesaw ) est une base de données Java créée en 2015 et en cours de développement (2018). Il est conçu pour être aussi évolutif que possible sans sacrifier la facilité d'utilisation. Les fonctions incluent le filtrage par rangées et colonnes, les statistiques descriptives, les fonctions de cartographie/réduction, les tableaux croisés, les tracés, l’apprentissage automatique. Licence Apache. 

Dans un test de requête, il a renvoyé plus de 500 enregistrements d'une table de 1/2 milliard en 2 ms. 

Les contributions, demandes de fonctionnalités et commentaires sont les bienvenus.

11
L. Blanc

Je me suis également trouvé dans le besoin d'une structure de trame de données alors que je travaillais récemment en Java. Heureusement, après avoir écrit une implémentation très basique, j'ai pu obtenir l'autorisation de la publier en open source. Vous pouvez trouver mon implémentation ici: Menuiserie - Cadres de données pour Java . Les contributions et demandes de fonctionnalités sont les bienvenues.

11
Bryan Cardillo

Ne pas être très compétent avec R, mais vous devriez jeter un oeil à Goyave , en particulier Table s. Ils fournissent pas les fonctionnalités exactes souhaitées, mais vous pouvez les étendre ou leur spécification peut vous aider à écrire votre propre collection.

6
Ondrej Skopek

Morpheus ( http://www.zavtech.com/morpheus/docs/ ) fournit un format DataFrame analogue à celui de R. Il s'agit d'une structure de données de magasin de colonnes hautes performances agrégés dans la ligne ou la dimension de la colonne. Il prend également en charge le traitement parallèle pour bon nombre de ces opérations à l'aide du cadre Fork & Join en interne.

Vous pouvez facilement lire et écrire des données dans des fichiers CSV, des bases de données et également au format JSON propriétaire. Des adaptateurs pour charger des données de Quandl, Google Finance et d’autres sont également disponibles.

Il prend en charge de manière intégrée divers styles de régression linéaire, d’analyse en composantes principales, d’algèbre linéaire et d’autres types de support analytique. L'ensemble de fonctionnalités est en train de s'agrandir, mais c'est déjà un framework très performant.

3
Xavier Witdouck

En R, nous avons le dataframe, en Python, nous avons les pandas, en Java: Il y a le Schema du 

Il existe également une version pour l'analyse des données de l'iris omniprésent si vous voulez juste commencer, ici

Il existe également d'autres objets personnalisés (de Weka, de Tensorflow qui sont plus ou moins identiques). 

0
moldovean