2017-04-04 66 views
0

我有以下tibble:數據轉換(集?)

~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, 
... 

有誰知道如何得到它?我認爲它可以使用「聚()」來完成的,但我沒有設法得到它的工作:

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

回答

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) 
+0

謝謝,這很好。但是,我有沒有可能將其他欄目c和d保留在新的tibble中 - 而不會改變它們? –

+0

編輯我的回覆。 – Phil