R 数据转换(收集?)

R 数据转换(收集?),r,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’) 有人知道如何得到它吗?我认为可以使用“gather()”来完成,但我没有设法让它工作: newTable <- oldTable %>% gather(a, b, value='c

我有以下几点:

~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’)

有人知道如何得到它吗?我认为可以使用“gather()”来完成,但我没有设法让它工作:

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

使用
?收集
阅读有关如何使用
收集
功能的更多信息

library(dplyr)
library(tidyr)

oldTable %>% select(-c, -d) %>% gather(key = aOrB, value = value, -id)
编辑:如果要保留
c
d
,但不堆叠:

    oldTable %>% gather(key = aOrB, value = value, -id, -c, -d)
如果要保留
c
d
,并与
a
b
一起堆放:

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

谢谢,效果很好。但我是否有可能在新的TIBLE中保留其他列c和d,而不转换它们?编辑了我的回答。
    oldTable %>% gather(key = aOrBOrCOrd, value = value, -id)