Hallo Lolo
lolo hat geschrieben: ↑Fr Jun 12, 2020 2:12 pm
ja, ich habe die kleine Änderung bemerkt.
Ich kenne mich leider nicht wirklich aus.
man sollte sich bei Funktionen vergewissern, dass sie etwas zurückliefern.
Wenn das Letzte eine Zuweisung ist, bin ich mir nicht sicher (könnte aber trotzdem funktionieren).
Die lange (und explizite) Form wäre
Also kann ich "neu" gar nicht direkt als einzelne Dateien speichern, weil das eine Liste ist?
jepp
Das heißt, die Liste muss in die einzelnen Dataframes zerlegt werden, um diese im Anschluss zu speichern?
Wie geht so etwas?
Es hängt davon ab, was Du möchtest. Z.B. kann man die vielen kleinen Dataframes aneinanderkleben (rbind())
Code: Alles auswählen
neu_gesamt <- do.call(rbind, neu)
write.csv2(neu_gesamt,"C:/Users/Documents/Projekt/messungen_neu/messungen.csv", row.names = FALSE)
oder die verkürzten Dataframes sollen einzeln jeder in eine Datei geschrieben werden.
Laut Deiner ersten Nachricht, möchtest Du jeden Dataframe in eine eigene Datei schreiben. Dann benötigst Du auch jeweils einen eigenen Dateinamen.
Das könnte dann so aussehen:
Code: Alles auswählen
setwd("C:/Users/Documents/Projekt/messungen")
Dateien <- dir(pattern="*.csv")
# Funktion Daten korrigieren
kuerzen <- function(Datei) {
mess <- read.csv(Datei)
subset(mess, mess$Gas>="150")
}
neu<-lapply(Dateien, FUN=kuerzen)
neu
write_neu <- function(Data, Datei) {
write.csv2(Data, paste0("../messungen_neu/", Datei), row.names = FALSE)
}
mapply(write_neu, neu, Dateien)
Gruß, Jörg