Excel mit 250000 Zeilen einlesen WIE??

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
leonard_24

Excel mit 250000 Zeilen einlesen WIE??

Beitrag von leonard_24 »

Hallo zusammen,

habe ein Problem, wie der Betreff schon erahnen lässt: Auf der Arbeit habe ich von einem Kollegen eine Excelfile mit ca. 250.000 Zeilen bekommen. Bisher hatte ich mit den gängigen Befehlen keinerlei Probleme aber hier komme ich einfach überhaupt nicht weiter.
Die Datei in mehrere Einzeldatein aufsplitten kommt nicht in Frage, da es ein möglichst automatisierter Prozess werden soll, bei der man monatlich ein file zugeschickt bekommene.

Bisher hatte ich
Data <- read.table/csv/read.xlsx2...
wobei xlsx2 normalerweise ganz gut läuft
Jetzt kommt bei diesem Riesenfile immer die Fehlermeldung:
Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, :
java.lang.OutOfMemoryError: GC overhead limit exceeded
Habe schon im Internet mal geschaut, Lösungsansätze wie

Code: Alles auswählen
options(java.parameters = "- Xmx1024m")
haben mir nix gebracht. Kann man die xlsx vllt. irgendwie umformatieren um sie kleiner zu machen??

Kann mir irgendjemand helfen?

Gruße
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Excel mit 250000 Zeilen einlesen WIE??

Beitrag von bigben »

Hallo leonard,

normalerweise gilt die Faustregel, dass Tabellen die Excel fassen kann, für R kein Problem sind. 250.000 Zeilen sind normalerweise kein Thema (hängt natürlich irgendwie auch an der Zahl der Spalten... ;-) ). Es sollte also nicht daran, sondern an der Einleseroutine liegen. Deine Fehlermeldung bezieht sich auf den Garbage Collector von Java - stellt sich die Frage, wozu wir hier Java brauchen. Kannst Du die Daten in Excel als csv speichern und dann mit read.csv2 einlesen?

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
leonard_24

Re: Excel mit 250000 Zeilen einlesen WIE??

Beitrag von leonard_24 »

wenn ich die datei (11 MB) in eine csv umformatiere habe ich auf einmal eine 48 MB Datei...
einlesen kann er es jetzt zwar :D , allerdings funktionieren meine funktionen nur noch zum teil, vllt, weil das auf den alten xlsx files basiert

z.b.
Extrahiert <- Liste[grepl("^Produktx",Liste$Product),]
funktioniert nicht mehr, da kommt nur ein leerer Vektor raus
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Excel mit 250000 Zeilen einlesen WIE??

Beitrag von bigben »

Naja xlsx ist ein komprimiertes Format, csv ein unkomprimiertes. Da sind die Dateien halt mal größer. Ist das ein Problem für Deinen "automatisierten Prozess"?

"Funktioniert nicht mehr" heißt, es gibt eine Fehlermeldung oder nur, dass Dir das Ergebnis mit der leeren Liste nicht passt? Ich weiß natürlich nicht, woran das liegt, vermute aber, dass Liste$Product jetzt kein String mehr, sondern ein Factor ist. Schuss ins Blaue: Versuch beim Einlesen mit read.csv2 mal das Argument stringsAsFactors = FALSE . Vielleicht löst das schon das Problem.

Sonst bitte mal die Ergebnisse folgender Kommandos posten:

Code: Alles auswählen

str(Liste)
head(Liste)
summary(Liste)
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
leonard_24

Re: Excel mit 250000 Zeilen einlesen WIE??

Beitrag von leonard_24 »

nochmals vielen dank für den tipp mit csv, die datei ist zwar 4x so groß aber einlesen funktioniert
Ich musste jedoch komischerweise einige codezeilen umschreiben, da sie nicht mehr ohne fehlermeldung liefen (warum auch immer???)
passt jetzt auf jeden fall
gruß
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Excel mit 250000 Zeilen einlesen WIE??

Beitrag von Athomas »

Ich bin wegen ähnlicher Schwierigkeiten auf openxlsx umgeschwenkt, das kommt ohne Java aus...
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Excel mit 250000 Zeilen einlesen WIE??

Beitrag von EDi »

Oder readxl mal ausprobieren...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Benutzeravatar
student
Beiträge: 674
Registriert: Fr Okt 07, 2016 9:52 am

Re: Excel mit 250000 Zeilen einlesen WIE??

Beitrag von student »

Vielleicht hilft auch dieser Hinweis weiter?
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Antworten