想象一下以下df:
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
如何使用spread来获取列中具有quar且kweffort和trip作为值的表?
希望看起来像这样:
metier quar 1 quar 2 quar 3 quar 4
OTB_DEF_100-119_0_0 trip value kweffort value ... ... ...
答案 0 :(得分:1)
我们可以unite
'kweffort'和'跳转'到一个列,然后spread
到'宽'格式。
library(tidyr)
df1 %>%
unite(kweffort_trips, kweffort, trips, sep=", ") %>%
spread(quar, kweffort_trips, sep="")
答案 1 :(得分:0)
不是基础R:
library(reshape2)
df$trips.kweffort <- paste('trips', df$trips, 'kweffort', df$kweffort)
dcast(df, metier~quar, value.var = 'trips.kweffort')