Datenmanagement
Datenmanagement
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?
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!
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?
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
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)
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
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Re: Datenmanagement
Hallo Rubilu,
https://stackoverflow.com/questions/589 ... ide-format
Gruß, Jörg
das klingt do nach einem typischen Problem der Sorte: reshape from long to wide.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.
https://stackoverflow.com/questions/589 ... ide-format
Gruß, Jörg
Re: Datenmanagement
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube
Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube
Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Re: Datenmanagement
Genau.
Auch die RDokumentation hat stats:reshape sehr schön aufbereitet.
https://www.rdocumentation.org/packages ... cs/reshape
Irmgard.
Re: Datenmanagement
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).
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 pmGenau.
Auch die RDokumentation hat stats:reshape sehr schön aufbereitet.
https://www.rdocumentation.org/packages ... cs/reshape
Re: Datenmanagement
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
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
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?
Irmgard.
Re: Datenmanagement
Liebes Hufeisen,
Du musst Dein Licht nicht unter den Scheffel stellen, denn wenn Du wüsstest, wie ich die ersten Jahre mit R rumgestümpert habe ...
Viele Grüße, Jörg
was sind denn das für Vergleiche?
Du musst Dein Licht nicht unter den Scheffel stellen, denn wenn Du wüsstest, wie ich die ersten Jahre mit R rumgestümpert habe ...
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).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.
nun hör aber auf damit.Demütig,
Viele Grüße, Jörg