CSV Spalten mergen

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

Moderatoren: EDi, jogo

mokka
Beiträge: 29
Registriert: Fr Okt 19, 2018 2:46 pm

Re: CSV Spalten mergen

Beitrag von mokka »

hey!

Danke dir vielmals :)

ich denke, es ist fast geschafft, nur ein problem noch: bei mir wird jetzt jede zeile der Tabelle, in der ein nan steht komplett gelöscht. das will ich nicht.
wenn zb in der spalte HF in einer Zeile ein nan steht, dann würde ich nur diesen einen nan gerne löschen, die zeile aber behalten (weil ich den SDNN wert dieser zeile nicht verlieren will). ich hoffe, das ist halbwegs verständlich :roll:

lg mokka
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: CSV Spalten mergen

Beitrag von EDi »

Dazu musst du nur eine Zeile ändern.
Geh meinen code Zeile für Zeile durch, versuch zu verstehen was er macht und kommst von selbst drauf.
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.
mokka
Beiträge: 29
Registriert: Fr Okt 19, 2018 2:46 pm

Re: CSV Spalten mergen

Beitrag von mokka »

hm...

also auf die gefahr, dass das der holzweg ist: ich bin mir relativ sicher, dass die änderung nur bei drop_na() vorzunehmen ist.
deshalb hab ich mir die r doku von dem befehl durchgelesen. daraus bin ich aber auch nicht ganz schlau geworden - zumindest nicht, was mein momentanes Problem angeht. Weil mit drop_na(HF, SDNN) klappts auch nicht, was mir vom lesen der doku her auch einleuchtet.

war das überhaupt der richtige ansatz oder ganz falsch unterwegs? :roll:
mokka
Beiträge: 29
Registriert: Fr Okt 19, 2018 2:46 pm

Re: CSV Spalten mergen

Beitrag von mokka »

Oder kann es sein, dass meine Idee sowieso Schwachsinn ist, weil die Spalten in einem dataframe immer die selbe Anzahl an eintragen haben müssen? Ich möchte die nans nur rausbekommen, damit ich, wenn ich die Spalten nachher einzeln als Vektoren Auslese und auswerte nicht unnötig viele Zeilen habe.
Aber dann könnte ich ja auch einfach nachher die nans aus dem Vektor entfernen und ihn kürzer machen?
mokka
Beiträge: 29
Registriert: Fr Okt 19, 2018 2:46 pm

Re: CSV Spalten mergen

Beitrag von mokka »

vor lauter nans hab ich aus den augen verloren, dass die daten nicht so gemerged werden, wie ich das brauche :(

ich bin noch immer bei diesem code:

Code: Alles auswählen

library(dplyr)
library(purrr)
library(tidyr)

mydir <- ("C:/Users/Desktop/CSV-TEST")        # hier pfad mit den files eingeben
list.files(mydir)

paths <- dir()
# list all csvs
files <- list.files(mydir, pattern = '.csv', full.names = TRUE)

# run over all csv, read in and rbind them
df <- map_df(files, ~ read.csv(.x, header = T, sep = ";"))

df %>%
  # keep only needed columns
  select(HF, SDNN) %>%
  # drop rows with NA
  # drop_na() %>%
  # write out
  write.csv(file = file.path(mydir, "soll_merged.csv"), row.names=TRUE)
das mit den nans hat mich zuerst sehr irritiert... aber es ist was ganz anderes wesentlich: mein resultierender df sieht so aus:
df.PNG
wieso dieses komische i mit zwei punkten da oben? die ursprünglichen variablen haben das nicht dabei (siehe Test1.csv und Test2.csv).
in diesem df
df.PNG
möchte ich jetzt die HF-Spalten (also 1.&4. Spalte) sowie die SDNN Spalten (2.&3. Spalte) mergen. also so, dass ich ein output file hab, das 2 spalten hat (HF und SDNN) und die ersten zeilen aus Test1.csv und die zeilen danach aus Test2.csv.

ich probiere alles mögliche und dreh mich nur im kreis. ich wollte das am wochenende in meiner freizeit gebacken bekommen, damit ich nächste woche meine eigentliche arbeit fortsetzen kann... meine motivation schwindet und ich wäre euch wirklich extrem dankbar für hilfe (eh schon viel bekommen und ich weiß, man muss auch selbst dahinter sein - aber alles was ich ausprobiert habe, war schrott).

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

Re: CSV Spalten mergen

Beitrag von EDi »

wenn zb in der spalte HF in einer Zeile ein nan steht, dann würde ich nur diesen einen nan gerne löschen, die zeile aber behalten (weil ich den SDNN wert dieser zeile nicht verlieren will). ich hoffe, das ist halbwegs verständlich :roll:
Nö, ich verstehe es nicht.
Wenn in HF ein NA steht, soll die Zeile behalten werden, also alle zeilen mit NA in HF behalten?
Was bedeutet "diesen einen nan gerne löschen" ?

drop_na entfernt alle Zeilen in denen irgendein NA steht. Wenn du andere Kritierien zum löschen von Zeilen hast, kannst du ?dplyr::filter nutzen.
weil die Spalten in einem dataframe immer die selbe Anzahl an eintragen haben müssen?
ja so ist ein data.frame definiert. Listen geben mehr flexibilität und erlauben auch unterschiedlich lange elemente.
wieso dieses komische i mit zwei punkten da oben? die ursprünglichen variablen haben das nicht dabei (siehe Test1.csv und Test2.csv).
Keine Ahnung - wie sollen wir das auch wissen? Mit meinem reproduzierbaren Beispiel funktioniert es.
meine motivation schwindet
Meine auch, da kein reproduzierbares Beispiel da ist mit dem man arbeiten kann. Deshalb bin ich raus hier.
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.
Antworten