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
Beiträge: 17
Registriert: So Aug 05, 2018 11:33 am

Excel mit 250000 Zeilen einlesen WIE??

Beitrag von leonard_24 » Di Nov 13, 2018 9:56 am

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: 723
Registriert: Mi Okt 12, 2016 9:09 am

Re: Excel mit 250000 Zeilen einlesen WIE??

Beitrag von bigben » Di Nov 13, 2018 10:40 am

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
Beiträge: 17
Registriert: So Aug 05, 2018 11:33 am

Re: Excel mit 250000 Zeilen einlesen WIE??

Beitrag von leonard_24 » Di Nov 13, 2018 11:35 am

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: 723
Registriert: Mi Okt 12, 2016 9:09 am

Re: Excel mit 250000 Zeilen einlesen WIE??

Beitrag von bigben » Di Nov 13, 2018 12:33 pm

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
Beiträge: 17
Registriert: So Aug 05, 2018 11:33 am

Re: Excel mit 250000 Zeilen einlesen WIE??

Beitrag von leonard_24 » Di Nov 13, 2018 1:36 pm

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: 104
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Excel mit 250000 Zeilen einlesen WIE??

Beitrag von Athomas » Di Nov 13, 2018 2:13 pm

Ich bin wegen ähnlicher Schwierigkeiten auf openxlsx umgeschwenkt, das kommt ohne Java aus...
Glaube nicht alles, was im Internet geschrieben wird - bloss weil da ein Name und ein Zitat stehen! (Immanuel Kant)

Benutzeravatar
EDi
Beiträge: 697
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Excel mit 250000 Zeilen einlesen WIE??

Beitrag von EDi » Di Nov 13, 2018 8:31 pm

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: 230
Registriert: Fr Okt 07, 2016 9:52 am

Re: Excel mit 250000 Zeilen einlesen WIE??

Beitrag von student » Mi Nov 14, 2018 8:02 am

Vielleicht hilft auch dieser Hinweis weiter?
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, r-statistik.de und das Ad-Oculos-Projekt

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

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast