数据转换(聚集?)

时间:2017-04-04 20:41:22

标签: r

我有以下几点:

~id, ~a, ~b, ~c, ~d,
1, 10, 20, 33, 42,
2, 30, 20, 32, 42,
3, 34, 24, 35, 32,
4, 32, 24, 35, 25,
5, 22, 14, 35, 36,
...
)

但我更喜欢以这种形式出现(只有列' a'和' b')

~id, ~aOrB, ~value
1, a, 10,
1, b, 20,
2, a, 30,
2, b, 20,
3, a, 34,
3, b, 24,
...

有谁知道如何获得它?我认为可以使用" gather()"来完成,但我没有设法让它工作:

newTable <- oldTable %>% gather(a, b, value='cases')

1 个答案:

答案 0 :(得分:1)

使用?gather详细了解如何使用gather功能。

library(dplyr)
library(tidyr)

oldTable %>% select(-c, -d) %>% gather(key = aOrB, value = value, -id)

编辑:如果您想保留cd,但不要堆叠:

    oldTable %>% gather(key = aOrB, value = value, -id, -c, -d)

如果您想保留cd,并与ab一起堆叠:

    oldTable %>% gather(key = aOrBOrCOrd, value = value, -id)