使用参数将变量从 1 列转换为 6 列

问题描述 投票:0回答:1

我正在使用自己的路径从事 Google Data Analytics Capstone 项目,最终得到了一个 86k 行的大型数据集,看起来像这样

Date   loc   loc_type  variable   value
---------------------------------------
1      1       1         1         (num)
---------------------------------------
1      1       1         2         (num)
---------------------------------------
1      1       1         3         (num)
---------------------------------------
1      1       1         4         (num)
---------------------------------------
1      1       1         5         (num)
---------------------------------------
1      1       1         6         (num)
---------------------------------------
1      1       2         1         (num)
---------------------------------------
1      1       2         2         (num)
---------------------------------------
1      1       2         3         (num)
---------------------------------------
1      1       2         4         (num)
---------------------------------------
1      1       2         5         (num)
---------------------------------------
1      1       2         6         (num)
---------------------------------------
1      2       1         1         (num)
---------------------------------------
1      2       1         2         (num)
---------------------------------------

我不知道从哪里开始,但我想要这样的东西

Date   loc   loc_type  var1   var2   var3   var4   var 5   var6
------------------------------------------------------------------
1        1      1     (num)   (num)  (num)  (num)  (num)   (num)
------------------------------------------------------------------
1        1      2     (num)   (num)  (num)  (num)  (num)   (num)
------------------------------------------------------------------
1        2      1     (num)   (num)  (num)  (num)  (num)   (num)
------------------------------------------------------------------
1        2      2     (num)   (num)  (num)  (num)  (num)   (num)
------------------------------------------------------------------
1        3      1     (num)   (num)  (num)  (num)  (num)   (num)
------------------------------------------------------------------
1        3      2     (num)   (num)  (num)  (num)  (num)   (num)
------------------------------------------------------------------
2        1      1     (num)   (num)  (num)  (num)  (num)   (num)
------------------------------------------------------------------
r excel database google-sheets google-bigquery
1个回答
0
投票

在 r 中使用

tidyr

# data mockup
df <- data.frame(Date = 1,
                 loc = rep(1:6, each = 12),
                 loc_type = rep(1:2, each = 6),
                 variable = 1:6,
                 value = 1:72)                 

df |> tidyr::pivot_wider(names_from = variable, names_prefix = "var", values_from = value)

产量:

    Date   loc loc_type  var1  var2  var3  var4  var5  var6
   <dbl> <int>    <int> <int> <int> <int> <int> <int> <int>
 1     1     1        1     1     2     3     4     5     6
 2     1     1        2     7     8     9    10    11    12
 3     1     2        1    13    14    15    16    17    18
 4     1     2        2    19    20    21    22    23    24
 5     1     3        1    25    26    27    28    29    30
 6     1     3        2    31    32    33    34    35    36
 7     1     4        1    37    38    39    40    41    42
 8     1     4        2    43    44    45    46    47    48
 9     1     5        1    49    50    51    52    53    54
10     1     5        2    55    56    57    58    59    60
11     1     6        1    61    62    63    64    65    66
12     1     6        2    67    68    69    70    71    72
© www.soinside.com 2019 - 2024. All rights reserved.