Hallo Queerio,
von dem kurzen Screenshot ist es schwer zu sagen, was für Gemeinheiten sich in so einem File noch verstecken.
Soweit man das sehen kann, würde ich zunächst einmal finden, dass man die Spalte B aufräumt. Da gibt es offensichtlich "am", "mid" und "pm". Dann gibt es Zeilen ohne Tageszeitzuordnung, die sollten nicht ohne Markierung bleiben, sondern einen eigenen Eintrag bekommen und dann kommt das problematische, die Einträgt mit Uhrzeiten. Die musst Du irgendwie kategorisieren. Ich vermute mal, dass man die Uhrzeiten auch in "am", "mid" und "pm" kategorisieren sollte?
"Medikament1 (mg)" soll man ja wahrscheinlich einer Morgen- Mittag- und Abendmedikation zuordnen können.
Ich bin ziemlich sicher, dass es im tidyverse und wahrscheinlich in tidyr eine eigenen Funktion gibt, mit der man die Spalten "time.of.day" und "detail" fusionieren kann. Ansonsten kann man natürlich auch einfach Basis-Funktionen nutzen:
Code: Alles auswählen
tracker <- data.frame(sonstiges = rnorm(6),
time.of.day = c("am", "am", "mid", "pm", "pm", "pm"),
detail = c("Symptom 1", "Symptom 2", "Medikament 1",
"Symptom 1", "Symptom 2", "Symptom 3"))
head(tracker)
#> sonstiges time.of.day detail
#> 1 1.0981427 am Symptom 1
#> 2 0.6415095 am Symptom 2
#> 3 -2.0084800 mid Medikament 1
#> 4 -2.6433191 pm Symptom 1
#> 5 -0.8091566 pm Symptom 2
#> 6 -0.2820777 pm Symptom 3
tracker$neu <- paste0(tracker$detail, "_", tracker$time.of.day)
head(tracker)
#> sonstiges time.of.day detail neu
#> 1 1.0981427 am Symptom 1 Symptom 1_am
#> 2 0.6415095 am Symptom 2 Symptom 2_am
#> 3 -2.0084800 mid Medikament 1 Medikament 1_mid
#> 4 -2.6433191 pm Symptom 1 Symptom 1_pm
#> 5 -0.8091566 pm Symptom 2 Symptom 2_pm
#> 6 -0.2820777 pm Symptom 3 Symptom 3_pm
Damit kannst Du dann entweder
pivot_wider oder aus Basis-R die Funktion
reshape benutzen:
Code: Alles auswählen
tracker <- data.frame(date = rep(as.Date("2024-01-29"), 6),
messwert = round(rnorm(6),3),
neu = paste0(c("Symptom 1", "Symptom 2", "Medikament 1",
"Symptom 1", "Symptom 2", "Symptom 3"), "_",
c("am", "am", "mid", "pm", "pm", "pm")))
head(tracker)
reshape(tracker, timevar = "neu", idvar = "date", direction = "wide")
head(tracker)
HTH,
Bernhard