Ich versuche die Reihenfolge der Spalten zu erhalten, wenn ich sie vom Wide- zum Long-Format zusammenarbeite. Das Problem, das ich habe, ist, nachdem ich gather
und summarize
die Bestellung verloren habe. Die Anzahl der Spalten ist riesig, daher möchte ich die Bestellung nicht manuell eingeben.Reihenfolge der Spalten beibehalten, wenn vom Wide- zum Long-Format gewechselt wird
Hier ist ein Beispiel:
library(tidyr)
library(dplyr)
N <- 4
df <- data.frame(sample = c(1,1,2,2),
y1.1 = rnorm(N), y2.1 = rnorm(N), y10.1 = rnorm(N))
> df
sample y1.1 y2.1 y10.1
1 1 1.040938 0.8851727 -0.3617224
2 1 1.175879 1.0009824 -1.1352406
3 2 -1.501832 0.3446469 -1.8687008
4 2 -1.326817 0.4434628 -0.8795962
Was ich will, ist die Reihenfolge der Spalten zu bewahren. Nachdem ich etwas manipuliert habe, ist die Reihenfolge verloren. Gesehen hier:
dfg <- df %>%
gather(key="key", value="value", -sample) %>%
group_by(sample, key) %>%
summarize(mean = mean(value))
> filter(dfg, sample == 1)
sample key mean
<dbl> <chr> <dbl>
1 1 y1.1 0.2936335
2 1 y10.1 0.6170505
3 1 y2.1 -0.2250543
Sie können sehen, wie es y10.1
vor y2.1
bringt, die ich nicht will. Was ich will, ist, dass die Ordnung aufrecht zu erhalten, hier zu sehen:
dfg <- df %>%
gather(key="key", value="value", -sample)
> filter(dfg, sample == 1)
sample key value
1 1 y1.1 0.60171521
2 1 y1.1 -0.01444823
3 1 y2.1 0.81566726
4 1 y2.1 -1.26577581
5 1 y10.1 0.41686388
6 1 y10.1 0.81723707
Aus irgendeinem Grund die group_by
und summarize
Operationen die Reihenfolge zu ändern. Ich bin mir nicht sicher warum. Ich habe versucht, den ungroup
Befehl, aber das tut nichts. Wie ich bereits sagte, hat mein tatsächlicher Datenrahmen viele Spalten und ich muss die Reihenfolge beibehalten. Der Grund, die Ordnung zu bewahren, ist, dass ich die Daten in der richtigen Reihenfolge darstellen kann.
Irgendwelche Ideen?
ich dies als Antwort ausgewählt, weil es die allgemeine Lösung ist. Die Lösung von @Moody_Mudskipper bietet jedoch eine einzigartige Option, die es numerisch sortiert, was in den gleichen Fällen gewünscht ist (wo die Spalten nicht in der gewünschten Reihenfolge sind). –