Export in .csv

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

Moderatoren: EDi, jogo

Antworten
lolo
Beiträge: 6
Registriert: Di Jun 09, 2020 12:42 pm

Export in .csv

Beitrag von lolo »

Hallo Forum,

ich möchte für spätere Analysen meine .csv Dateien kürzen und diese anschließend wieder in einzelne .csv Dateien speichern.
Bei mir hat es alle Datensätze in eine Datei gespeichert.
Wie kann ich die gekürzten Dateien einzeln abspeichern?

Hier mein Code, wie er bisher ist:

Code: Alles auswählen

setwd("C:/Users/Documents/Projekt/messungen") 
messungen <- dir(pattern="*.csv")
# Funktion Daten korrigieren
kuerzen <- function(messungen) {
  mess <- read.csv(messungen)
  kurz <- subset(mess, mess$Gas>="150") 
}  
neu<-lapply(messungen, FUN=kuerzen)
neu
write.csv2(neu,"C:/Users/Documents/Projekt/messungen_neu/messungen.csv", row.names = FALSE)
Vielen Dank.
ruedi_br
Beiträge: 159
Registriert: Do Mär 01, 2018 3:53 pm

Re: Export in .csv

Beitrag von ruedi_br »

Vermute ich richtig, dass auch schon in alles hintereinandergeklatscht ist?
VG
Ruedi
Zuletzt geändert von ruedi_br am Fr Jun 12, 2020 3:47 pm, insgesamt 1-mal geändert.
fortune(111)
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Export in .csv

Beitrag von jogo »

Hallo lolo,

für Deine Funktion habe ich folgende kleine Änderung:

Code: Alles auswählen

# Funktion Daten korrigieren
kuerzen <- function(messung) {
  mess <- read.csv(messung)
  subset(mess, mess$Gas>="150") ## kurz
}  
siehst Du den Unterschied?
Ansonsten:
Das Objekt neu ist eine Liste von Dataframes und write.csv2() verarbeitet keine Liste, sondern einen Dataframe ...
was möchtest Du an dieser Stelle tun?

Gruß, Jörg
lolo
Beiträge: 6
Registriert: Di Jun 09, 2020 12:42 pm

Re: Export in .csv

Beitrag von lolo »

Hallo Ruedi,

ja, wenn ich mir neu anzeigen lasse, werden in der Console alle Datenätze nacheinander
in der gekürzten Version angezeigt.

LG Lolo
lolo
Beiträge: 6
Registriert: Di Jun 09, 2020 12:42 pm

Re: Export in .csv

Beitrag von lolo »

Hallo Jörg,

ja, ich habe die kleine Änderung bemerkt.

Ich kenne mich leider nicht wirklich aus.
Also kann ich "neu" gar nicht direkt als einzelne Dateien speichern, weil das eine Liste ist?
Das heißt, die Liste muss in die einzelnen Dataframes zerlegt werden, um diese im Anschluss zu speichern?
Wie geht so etwas?

Vielen Dank.
LG Lolo
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Export in .csv

Beitrag von jogo »

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

Code: Alles auswählen

  return(subset(...))
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
lolo
Beiträge: 6
Registriert: Di Jun 09, 2020 12:42 pm

Re: Export in .csv

Beitrag von lolo »

Dankeschön :D
Antworten