2017-06-14 8 views
1

Ich erzeuge riesige Datenmengen und möchte während meines Laufs nur ausgewählte Werte speichern. Aber es speichert immer das letzte Ergebnis. Im folgenden Beispielcode speichert es immer das letzte Ergebnis, das meine Bedingung erfüllt. Denken Sie daran, dass ich riesige Datenmengen habe und nicht in einem Vektor oder einer Liste speichern möchte, sondern direkt in einer Datei speichern möchte. Ich brauche deine Hilfe.Speichern numerischer Daten in einer Datei

Danke.

f<-function(x) (x-1)*(x-5)*(x-10) 

fileE<-file("E.txt") 
for (i in seq(1,100,0.1)){ 
    if (f(i) > 0 && f(i) < 10) 
     writeLines(paste0(i," ",f(i)), fileE) 
} 
close(fileE) 

Antwort

1

Vielleicht write mit append verwenden:

unlink("E.txt") 

for (i in seq(1, 100, 0.1)){ 
    res <- f(i) 
    if (res > 0 & res < 10) 
    write(x = paste0(i, " ", res), file = "E.txt", append = TRUE) 
    } 
+0

Dies funktioniert, aber wenn ich meine Simulation laufen wieder wird es Daten in früheren vorhandene Datei anhängen. Wie kann ich vorherige Daten löschen und neue hinzufügen? – bell

+0

Nein, es fügt immer noch in die vorherige Datendatei ein und entfernt vorherige Inhalte nicht. – bell

+1

'Verknüpfung 'Datei, um es zwischen den Läufen zu löschen. (Oder 'if (i == 1) unlink (" E.txt ")' innerhalb Ihrer Schleife.) – Gregor

Verwandte Themen