2016-10-25 1 views
0

Stellen Sie sich folgende df:Spread verwenden, aber zwei Variablen pro Spalte beibehalten?

quar    metier kweffort trips 
    <int>    <chr>  <dbl> <int> 
1  1 OTB_DEF_100-119_0_0 12866.9022  6 
2  1 OTB_DEF_70-99_0_0 13546.3839 11 
3  1 OTB_MCD_70-99_0_0 2052.9117  2 
4  1 TBB_DEF_100-119_0_0 4496.7492  1 
5  1 TBB_DEF_70-99_0_0 384167.3136 69 
6  1 TBB_DEF_G120_0_0 7260.1340  1 
7  2 OTB_DEF_100-119_0_0 78069.8550 19 
8  2 OTB_DEF_70-99_0_0 14333.0972 12 
9  2 OTB_DEF_G120_0_0 859.0463  1 
10  2 OTB_MCD_70-99_0_0 22528.3388 19 

Wie kann ich als Wert Quar in den Spalten und sowohl kweffort und Ausflüge hat verwenden verteilt, um einen Tisch zu bekommen, die?

Es wäre hoffentlich wie folgt aussehen:

metier     quar 1      quar 2 quar 3 quar 4 
OTB_DEF_100-119_0_0 trip value kweffort value ...  ...  ... 
+0

Hätten Sie etwas dagegen genauer über Ihre gewünschte Ausgabe zu sein. Es ist mir nicht klar, was Sie erwarten. –

Antwort

1

Wir können die 'kweffort' unite und 'Reisen' zu einer einzigen Spalte, dann spread zu 'breit' Format.

library(tidyr) 
df1 %>% 
    unite(kweffort_trips, kweffort, trips, sep=", ") %>% 
    spread(quar, kweffort_trips, sep="") 
+1

Vielleicht verwenden Sie '... sep = ''' in 'spread()', so dass 'quart' im Spaltennamen erscheint. –

0

Nicht mit Sockel R:

library(reshape2) 
df$trips.kweffort <- paste('trips', df$trips, 'kweffort', df$kweffort) 
dcast(df, metier~quar, value.var = 'trips.kweffort') 
Verwandte Themen