I miei dati sono osservazioni ordinate e voglio mantenere l'ordinamento il più possibile mentre faccio le manipolazioni.Ordinamento implicito in tidyr :: spread e dplyr :: riepilogo
Prendere la risposta per this question, ho messo "B" davanti a "A" nel dataframe. I dati ampi risultanti sono ordinati per la colonna "nome", cioè "A" prima, quindi "B".
df = data.frame(name=c("B","B","A","A"),
group=c("g1","g2","g1","g2"),
V1=c(10,40,20,30),
V2=c(6,3,1,7))
gather(df, Var, Val, V1:V2) %>%
unite(VarG, Var, group) %>%
spread(VarG, Val)
name V1_g1 V1_g2 V2_g1 V2_g2
1 A 20 30 1 7
2 B 10 40 6 3
C'è un modo per mantenere l'ordinamento originale? in questo modo:
name V1_g1 V1_g2 V2_g1 V2_g2
1 B 10 40 6 3
2 A 20 30 1 7
04/02 edit: ho appena trovato il dplyr::summarise
fa l'ordinamento pure. arrange(name, df$name)
funziona ancora per ripristinare l'ordine. Ma mi chiedo se lo smistamento extra è necessario dal design dei pacchetti?
df %>%
group_by(name) %>%
summarise(n()) %>%
name n()
1 A 2
2 B 2
interessanti. Sembra che durante la fase di diffusione, anche i livelli dei fattori per la variabile "nome" vengano modificati .... – A5C1D2H2I1M1N2O1R2T1