DataFrame (Matrix mit mit verschiedenen Typen pro Spalte)

Status
Nicht offen für weitere Antworten.
T

_thomas_

Gast
Hallo zusammen

Ich möchte eine Datenstruktur machen, welche ich wie eine Matrix verwenden kann mit verschiedenen Typen pro Spalte.
Nun will ich das ganze als Liste imlementieren, wobei die Schwierigkeit ist, dass ich die Typen der Spalten zur Kompilierzeit noch nicht kenne.

Ein Beispiel:

Ein csv-File oder eine DB-Tabelle kann folgendermassen aussehen:
id name geb
1 paul 01.10.1970
2 hans 01.10.1971

Und daraus möchte ich eine Datenstruktur bauen, welche die folgenden Typen für die Spalten hat:
DataFrame[int, String, java.lang.Date]


Ein erster Versuch:

Code:
        ResultSetMetaData rsmd = rs.getMetaData();  //rs = ResultSet z.B. einer "SELECT * FROM x" query

        int ncol = rsmd.getColumnCount();
        List<Class> columns = new ArrayList<Class>(ncol);
        int colType;

        for (int i = 0; i < ncol; i++) {
            colType = rsmd.getColumnType(i + 1);
            switch (colType) {
                case Types.INTEGER:
                    columns.add(Class.forName("java.lang.Integer"));
                    break;
                case Types.CHAR:
                case Types.VARCHAR:
                    columns.add(Class.forName("java.lang.String"));
                    break;
                default:
                    System.err.println("not yet implemented type: " + colType);
                    break;
            }
        }

Nun stehe ich an einem Punkt wo ich nicht genau weiss, ob ich vollkommen auf dem Holzweg bin oder nicht.

1. müsste ich sowas wie Class.forName("java.lang.String[]") haben
2. ist mein Ansatz wirklich die Lösung für mein Problem?

Die Methode sollte schlussendlich auch csv-Files einlesen können und ein DataFrame erzeugen. Der obige Code ist also nur ein DB-spezifisches Beispiel.

Bin dankbar für jeglichen Kommentar und jeden Hinweis...

Danke und Gruss

Thomas
 

Landei

Top Contributor
Der "DataFrame" nennt sich "Tupel" und ist (leider) kein Standard-Java-Bestandteil. Schau mal hier: http://javatuple.com/

Damit zu arbeiten ist allerdings nicht ganz einfach, weil ja alles bei dir dynamisch ist, aber das Java-Typsystem sehr, sehr statisch :-D
 
T

_thomas_

Gast
Danke für die Antwort

Java Tuples sind nicht wirklich die Lösung für mein Problem. Die Doku dazu sagt, dass man

1. zur compile time wissen muss was für Typen man erwartet und

Code:
Triple<String,String,Integer> cityPopulation =
    Tuple.from("NM", "Albuquerque", 494236);

2. Tupels sind begrenzt auf zehn Einträge (könnte wahrscheinlich ohne zu grossen Aufwand erweitert werden).

The easiest way to create a tuple is to use the from() static method. This method is overloaded for tuples of one to ten elements, and returns one of the named tuple types.


Mein Hauptproblem ist Punkt 1. Wie bekomme ich eine Liste List<R, C, P,... > wenn ich die Typen R, C, P usw erst zur compile time kenne?

Auf was ich schlussendlich raus will ist z.B. eine lineare Regression rechnen zu können mit der folgenden Form
linReg.run(formula = "y ~ x1 + x2", data = dataFrame), wobei z.B. x2 eine Stringvariable sein kann (d.h. x2 müsste dann in einen Faktor umgeschrieben werden und das dataFrame in eine Designmatrix).
Weiter soll ein Aufruf der Form dataFrame.select(1, 2, 1, 10) ein neues DataFrame erzeugen, welches aus den ersten zwei Zeilen und den ersten zehn Spalten von dataFrame besteht.
 

Landei

Top Contributor
zur compile time wissen muss was für Typen man erwartet
Nö:
Code:
Tuple<?> t1 =
    Tuple.from("NM").prepend("Albuquerque").prepend(494236);

Tupels sind begrenzt auf zehn Einträge
Nö.
Benannte Tupel (Single, Pair, Triple, ...) gibt es nur zehn, aber mit o.g. prepend-Methode kannst du dir solange Tupel zusammenbauen, wie der Java-Compiler mitmacht...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N lwjgl Projection Matrix löscht Dreieck Allgemeine Java-Themen 1
H Matrix ohne Array erstellen Allgemeine Java-Themen 9
T Google Distance Matrix API Hello World/ Client Secret Allgemeine Java-Themen 3
G Matrix reduzieren zwei Methoden Allgemeine Java-Themen 2
R Multiplikation von Matrix und Vektor Allgemeine Java-Themen 5
P Matrix-Vektor Multiplikation Allgemeine Java-Themen 8
P Matrix erstellen Allgemeine Java-Themen 1
P Matrix-Vektor-Multiplikation Allgemeine Java-Themen 25
J Matrix Allgemeine Java-Themen 2
R Bibliothek für Darstellung von char auf 5x7 Dot-Matrix Allgemeine Java-Themen 2
K LED-Matrix oder andere "Hardware" für JavaProgrammierung Allgemeine Java-Themen 9
D Suche Matrix Libraries Allgemeine Java-Themen 11
P Matrix von Tastatur in 2D Array??? Allgemeine Java-Themen 7
P Matrix Kurtosis berechnen Allgemeine Java-Themen 40
D 8x8 Matrix mit Schachbrettbeschriftung Allgemeine Java-Themen 8
E Zufall in Matrix Allgemeine Java-Themen 10
S Algoritmus Distribution in einer Matrix Allgemeine Java-Themen 7
C Linie in Matrix machen Allgemeine Java-Themen 5
D Matrix, ArrayList, null-Zellen Allgemeine Java-Themen 6
D Zweidimensionales Array als Matrix ausrpinten lassen Allgemeine Java-Themen 4
S Darstellung einer dynamischen Matrix Allgemeine Java-Themen 9
T Applikation für RGB LED Matrix Allgemeine Java-Themen 7
S Array Matrix erstellen? Allgemeine Java-Themen 9
RoliMG matrix diagonalen initialisieren Allgemeine Java-Themen 2
M HashMap kapselt zwei Objekte aber wie baut man eine Matrix? Allgemeine Java-Themen 2
B Entfernen von Zeilen/Spalten aus einer Matrix Allgemeine Java-Themen 8
J Matrix mit unterschiedlicher Anzahl von Spalten pro Zeile? Allgemeine Java-Themen 4
W Matrix potenzieren Allgemeine Java-Themen 4
E ArrayList Matrix sortieren Allgemeine Java-Themen 4
Master3000 Dateien zwischen verschiedenen Netzwerken senden Allgemeine Java-Themen 17
Drachenbauer Wie muss ein Konstructor aussehen, um dinge mit verschiedenen Zusätzen in den "<>" anzunehmen? Allgemeine Java-Themen 1
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
A Classpath Library in verschiedenen Projekten Allgemeine Java-Themen 2
S Spielfeld aus verschiedenen Kacheln Allgemeine Java-Themen 35
U Variablen Stringarrays mit wenig verschiedenen Zeichen effizienter speichern Allgemeine Java-Themen 10
M ArrayList mit verschiedenen Datentypen in String konvertieren Allgemeine Java-Themen 10
M Null byte in verschiedenen charsets Allgemeine Java-Themen 2
M Testen von verschiedenen Produktversionen Allgemeine Java-Themen 3
C Vigenere und Caesar in verschiedenen Alphabeten Allgemeine Java-Themen 1
A Threads Lock über mehrere Abschnitte in verschiedenen Methoden Allgemeine Java-Themen 5
T Datentypen Eine Liste - verschiedenen Klassen - eine Abstracte Klasse Allgemeine Java-Themen 3
P Objekt mit verschiedenen Datentypen Allgemeine Java-Themen 5
P Anzahl vo Einträgen in verschiedenen Sets Allgemeine Java-Themen 3
R Input/Output Dateizugriff aus verschiedenen Tools Allgemeine Java-Themen 3
J Druckprobleme bei verschiedenen Schriftarten/-größen Allgemeine Java-Themen 7
B File Seperator unter verschiedenen OS Allgemeine Java-Themen 2
G Gleiche Packages in verschiedenen JAR Dateien - Welches Package wird verwendet? Allgemeine Java-Themen 5
K Programm mit verschiedenen Parametern starten Allgemeine Java-Themen 2
E Outputstream an verschiedenen Positionen beschreiben Allgemeine Java-Themen 4
N Dateizugriff in verschiedenen Ordnern Allgemeine Java-Themen 2
S Fragen zu verschiedenen Themen vom JCreator Allgemeine Java-Themen 2
S Frage zu verschiedenen Java Projekten Allgemeine Java-Themen 6
D Logger mit verschiedenen Ausgabezielen Allgemeine Java-Themen 2
H2SO3- sichtbarkeit in verschiedenen paketen Allgemeine Java-Themen 2
R Kann ich die jars eines Applets auf verschiedenen Domains hosten? Allgemeine Java-Themen 2
R Aktuelle Kompatibilitätsliste für JRE auf verschiedenen OS´s Allgemeine Java-Themen 2
MQue Methoden in verschiedenen Klassen aufrufen Allgemeine Java-Themen 21
MQue JButton an verschiedenen Variablen Allgemeine Java-Themen 2
J parsen von verschiedenen dokument typen Allgemeine Java-Themen 3
D generischer Iterator mit verschiedenen Typen Allgemeine Java-Themen 3
S Arrayelemente in verschiedenen Variationen zurückgeben Allgemeine Java-Themen 12
T Herunterfahren oder Neustarten der verschiedenen OS Allgemeine Java-Themen 11
C Sichbarkeit von Objekten / Methoden in verschiedenen Files Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben