Seite 1 von 1

Datenmanagement

Verfasst: Di Jun 04, 2019 5:15 pm
von Rubilu
Hallo zusammen!

Mein Datensatz (s. Anhang) lässt sich leider nicht so leicht bändigen.
Zur Erklärung der Abbildung:
ID beschreibt den Patienten, P das Probedatum, M das Medikament mit der dazugehörigen Dosierung (D).
Um weiter verfahren zu können, sollen die Daten sowohl nach ID, als auch nach Probedatum sortiert werden und die Medikamente mit den dazugehörigen Daten nebeneinander statt untereinander aufgeführt werden.

Ich hab das Problem, das alle meine Versuche den optimalen Zustand zu erreichen, gescheitert sind. Ist das überhaupt mit R möglich? :cry: :cry: :cry: :?

Es würde mir daher wirklich sehr helfen, wenn jemand eine Idee hat, wie ich am Besten weiter vorgehen soll. Ich bin echt verzweifelt und mit meinem Latein am Ende.

Vielen Dank im Vorraus!

Re: Datenmanagement

Verfasst: Di Jun 04, 2019 6:57 pm
von EDi

Code: Alles auswählen

df <- data.frame(ID = c(1,1,2,2, 2),
                 P = c("01.01.2000", "01.01.2000", "02.01.2000", "02.01.2000", "02.01.2000"),
                 M = LETTERS[1:5],
                 D = c(10, 25, 4, 12.5, 30)
)

library(dplyr)
library(tidyr)

df %>%
  group_by(ID) %>%
  mutate(occ = paste0('M', row_number()),
         occ2 = paste0('D', row_number())) %>%
  ungroup() %>%
  spread(occ, M)%>%
  spread(occ2, D)

Wenn man aber solche Purzelbäume machen muss, sollte man über seine Datenstruktur nachdenken......

Re: Datenmanagement

Verfasst: Di Jun 04, 2019 8:20 pm
von jogo
Hallo Rubilu,
Rubilu hat geschrieben: Di Jun 04, 2019 5:15 pm Zur Erklärung der Abbildung:
ID beschreibt den Patienten, P das Probedatum, M das Medikament mit der dazugehörigen Dosierung (D).
Um weiter verfahren zu können, sollen die Daten sowohl nach ID, als auch nach Probedatum sortiert werden und die Medikamente mit den dazugehörigen Daten nebeneinander statt untereinander aufgeführt werden.
das klingt do nach einem typischen Problem der Sorte: reshape from long to wide.
https://stackoverflow.com/questions/589 ... ide-format

Gruß, Jörg

Re: Datenmanagement

Verfasst: Mi Jun 05, 2019 12:06 pm
von student
Hallo Rubilu,

zum long-wide-Format habe ich auch noch etwas!

Re: Datenmanagement

Verfasst: Fr Jun 07, 2019 9:21 pm
von consuli
jogo hat geschrieben: Di Jun 04, 2019 8:20 pm das klingt do nach einem typischen Problem der Sorte: reshape from long to wide.
Genau.
Auch die RDokumentation hat stats:reshape sehr schön aufbereitet.
https://www.rdocumentation.org/packages ... cs/reshape

Re: Datenmanagement

Verfasst: Sa Jun 08, 2019 2:39 pm
von jogo
in einer Richtung habe ich mit stats::reshape immer große Probleme, es richtig zu parametrisieren.
Einmal habe ich behelfsweise die Spalten umbenannt (das muss wohl bei wide to long gewesen sein).
consuli hat geschrieben: Fr Jun 07, 2019 9:21 pm
jogo hat geschrieben: Di Jun 04, 2019 8:20 pm das klingt do nach einem typischen Problem der Sorte: reshape from long to wide.
Genau.
Auch die RDokumentation hat stats:reshape sehr schön aufbereitet.
https://www.rdocumentation.org/packages ... cs/reshape

Re: Datenmanagement

Verfasst: Sa Jun 08, 2019 3:07 pm
von Hufeisen
Lieber jogo,

es wäre ein glattes Wunder, wenn ich als Krümel Dir als Brotlaib noch etwas beibringen könnte! Aber in meinen kurzen Ausflügen ins tidyverse hat es sich bewährt, jede Variable "mit der man noch etwas machen will" in der Funktion melt() als id.vars = "XY" zu deklarieren und den Rest 'schmelzen' zu lassen. "Mit der man noch etwas machen will" bedeutet zum Beispiel die Variable für die Faceten einer ggplot2-Grafik zu verwenden.

Demütig,
Hufeisen

Re: Datenmanagement

Verfasst: Sa Jun 08, 2019 3:26 pm
von consuli
jogo hat geschrieben: Sa Jun 08, 2019 2:39 pm in einer Richtung habe ich mit stats::reshape immer große Probleme, es richtig zu parametrisieren.
Einmal habe ich behelfsweise die Spalten umbenannt (das muss wohl bei wide to long gewesen sein).
Das hatte ich auch schon öfter bei wide -> long. Möglicher Weise hat stats::reshape einen kleinen Bug?
Aber irgendwie ging es nach etwas rumfrickeln dann doch immer. Möglicher Weise gibt es undokumentierte Anforderung an die Namen der Spalten, die zu einer zusammengefasst werden sollen.

@student
Die long->wide- bzw. wide->long-Konversion ist ein wiederkehrendes Thema im Forum. Möglicher Weise hättest Du bei Gelegenheit Interesse stats::reshape in Deine Tips und Tricks Sammlung aufzunehmen?

Re: Datenmanagement

Verfasst: Sa Jun 08, 2019 6:31 pm
von jogo
Liebes Hufeisen,
Hufeisen hat geschrieben: Sa Jun 08, 2019 3:07 pm es wäre ein glattes Wunder, wenn ich als Krümel Dir als Brotlaib noch etwas beibringen könnte!
was sind denn das für Vergleiche? :shock:
Du musst Dein Licht nicht unter den Scheffel stellen, denn wenn Du wüsstest, wie ich die ersten Jahre mit R rumgestümpert habe ...
Aber in meinen kurzen Ausflügen ins tidyverse hat es sich bewährt, jede Variable "mit der man noch etwas machen will" in der Funktion melt() als id.vars = "XY" zu deklarieren und den Rest 'schmelzen' zu lassen. "Mit der man noch etwas machen will" bedeutet zum Beispiel die Variable für die Faceten einer ggplot2-Grafik zu verwenden.
Bei data.table geht das auch ganz flockig. Das ist der Vorteil, wenn man alle nichttrivialen nützlichen Funktionen unter ein gemeinsames Konzept stellt (wie auch bei tidyverse, womit ich mich noch beschäftigen muss).
Demütig,
nun hör aber auf damit. :oops:

Viele Grüße, Jörg