Frage:
Wie man einen großen Datensatz in R liest
niko
2010-10-19 17:00:38 UTC
view on stackexchange narkive permalink

Beim Versuch, einen großen Datensatz in R der Konsole zu lesen, wurden die folgenden Fehler angezeigt:

  data<-read.csv ("UserDailyStats.csv", sep = ",", header = T, na.strings = "-", stringsAsFactors = FALSE) > data = data [complete.cases (data),] > dataset<-data.frame (user_id = as.character (data [, 1]), event_date = as.character (data [, 2]), day_of_week = as.factor (data [, 3]), unique_events_a_count = as.numeric (as.character (data [, 4])), total_events_a_count = as.numeric (as.character (data) [, 5])), events_a_duration = as.numeric (as.character (data [, 6])), unique_events_b_count = as.numeric (as.character (data [, 7])), total_events_b = as.numeric (as .character (data [, 8])), events_b_duration = as.numeric (as.character (data [, 9]))) Fehler: Vektor der Größe 94,3 Mb kann nicht zugeordnet werden. Zusätzlich: Warnmeldungen: 1: In data.frame ( user_msisdn = as.character (Daten [, 1]), Calls_date = as.character (Daten [,: NAs, die durch Zwang eingeführt wurden2: In data.frame (user_msisdn = as.character (Daten [, 1]), Calls_date = as. Zeichen (da ta [,: NAs eingeführt durch Zwang3: In Klasse (Wert) <- "data.frame": Erreichte Gesamtzuordnung von 3583 MB: siehe Hilfe (Speichergröße) 4: In Klasse (Wert) <- "data.frame": Gesamtzuweisung von 3583 MB erreicht: siehe Hilfe (memory.size)  

Weiß jemand, wie man große Datenmengen liest? Die Größe von UserDailyStats.csv beträgt ungefähr 2 GB.

Warum bestehen Sie darauf, hier und auf SO zu posten?
Gestatten Sie mir, Sie gleichermaßen schamlos auf [meine Antwort auf Ihre identische Frage zu StackOverlow] (http://stackoverflow.com/questions/3968073/how-to-read-large-dataset-in) zu verweisen -r)
-1; Keine Notwendigkeit, bitter zu sein.
Fünf antworten:
#1
+9
Shane
2010-10-19 18:09:51 UTC
view on stackexchange narkive permalink

Zwei grundlegende Dinge:

  1. Diese Beschwerde betrifft den gesamten Speicher in der R-Sitzung, nicht nur das eine Objekt, das Sie laden. Und wenn Sie nicht so etwas wie ff verwenden, befindet sich alles in Ihrer Sitzung im Speicher.
  2. Unter Windows müssen Sie angeben, wie viel Speicher von R. verwendet werden kann Schauen Sie sich die Hilfe (memory.limit) an. Obwohl Sie 64-Bit verwenden, wird standardmäßig nicht der gesamte verfügbare Speicher verwendet.
  3. ol>

    Andernfalls können Sie die Verwendung von bigmemory in Betracht ziehen, um größere Speicher zu verarbeiten Datensätze, wenn es immer noch ein Problem ist. Einige relevante Quellen:

Als letzten Vorschlag können Sie versuchen, gc () code aufzurufen > um Speicher freizugeben, bevor Sie Ihren Befehl ausführen, obwohl R dies im Prinzip automatisch nach Bedarf ausführt.

#2
+2
NPE
2010-10-19 18:02:15 UTC
view on stackexchange narkive permalink

Auf welcher Plattform läuft R? Wie viel physischen und virtuellen Speicher verfügt die Maschine?

Möglicherweise finden Sie auch Folgendes relevant: http://stat.ethz.ch/R-manual/R-devel/library/ base / html / Memory-Limits.html

Ich verwende Windows 7 64-Bit auf Quad-CPU 2,67 GHz, 4 GB RAM
#3
+2
Manuel Ramón
2010-10-19 21:00:59 UTC
view on stackexchange narkive permalink

Ich stimme der Antwort von Dirk voll und ganz zu. Ein Vorschlag. Ich habe die Verwendung von Programmiersprachen wie AWK oder anderen bei der Bewertung großer Datenbanken als sehr nützlich empfunden. So konnte ich die Daten filtern, die ich in meine Analyse einbeziehen wollte, und so die endgültige Größe des Datensatzes reduzieren.

Außerdem duplizieren Sie in Ihrem Code denselben Datensatz zweimal (Daten und Datensatz). Wenn Sie Ihre Variablen als Faktor, numerisch usw. definieren möchten, können Sie die Option colClasses in der Funktion read.table verwenden.

#4
+2
ars
2010-10-19 21:35:04 UTC
view on stackexchange narkive permalink

Da Sie unter 64-Bit-Windows arbeiten, stellen Sie sicher, dass Sie die 64-Bit-Version von R für Windows installiert haben und ausführen. Befolgen Sie dann die Anweisungen auf der Seite von Gary King:

#5
+1
Cacofonix
2013-01-09 17:25:55 UTC
view on stackexchange narkive permalink

Sie können immer das Paket filehash verwenden, mit dem der große Datensatz auf der Festplatte und nicht im Systemspeicher abgelegt wird. Aufgrund der langsamen HDD-Lesezeiten müssen Sie jedoch auf den Kompromiss vorbereitet sein.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 2.0-Lizenz, unter der er vertrieben wird.
Loading...