如何在R中使用collect()函数来堆叠分散到仅一列的数据

时间:2019-05-23 12:56:26

标签: r tidyverse tidyr

我有以下数据集:

   absences  G1 G2 G3
1          6  5  6  6
2          4  5  5  6
3         10  7  8 10
4          2 15 14 15
5          4  6 10 10

G1G2G3中的每一个都是对给定关注变量的不同度量。我想要另一个包含3列的数据集:absences,这是一个指示该度量和值的键。例如,堆叠上面的列。

我已经在线查看了,gather()中的tidyr函数似乎是行之有效的方法。但是,我不太了解它的语法。有人可以帮我吗?提前非常感谢您!

1 个答案:

答案 0 :(得分:1)

library(tidyr)

dataset <- read.table(text = '   absences  G1 G2 G3
1          6  5  6  6
2          4  5  5  6
3         10  7  8 10
4          2 15 14 15
5          4  6 10 10',
                      header = TRUE)

gather(data = dataset,
       key = "G",
       value = "value",
       -absences)
#>    absences  G value
#> 1         6 G1     5
#> 2         4 G1     5
#> 3        10 G1     7
#> 4         2 G1    15
#> 5         4 G1     6
#> 6         6 G2     6
#> 7         4 G2     5
#> 8        10 G2     8
#> 9         2 G2    14
#> 10        4 G2    10
#> 11        6 G3     6
#> 12        4 G3     6
#> 13       10 G3    10
#> 14        2 G3    15
#> 15        4 G3    10

reprex package(v0.3.0)于2019-05-23创建

希望这会有所帮助。