2014-12-05 39 views
-1

我在使用reshape2軟件包時遇到了以下問題。使用Reshape2創建新的數據框

我有一個數據幀,它看起來像:

ID = c("1") 
TIME1 = c("0.5") 
TIME2 = c("1") 
TIME3 = c("2") 
TIME4 = c("5") 
DF = data.frame(ID, TIME1, TIME2, TIME3, TIME4) 

我想,以獲得下面的數據幀變換它:

ID = c("1","1","1","1") 
TIME = c("0.5", "1", "2","5") 
DF2 = data.frame(ID, TIME) 

其中ID是在列重複。

我很抱歉,如果我在這個論壇上忽略了類似的答案,我似乎無法圍繞熔化和dcast功能及其內容包裹我的頭。

此外,如果除reshape2以外的任何其他軟件包對此方案有用/更快,請不要猶豫,以便發佈它們。

預先感謝您。

Sincerily,

YKL

回答

1

您可以使用melt

library(reshape2) 
melt(DF, id.var='ID', value.name='TIME')[,-2] 
# ID TIME 
#1 1 0.5 
#2 1 1 
#3 1 2 
#4 1 5 

還是因爲你要求的其他包

library(dplyr) 
library(tidyr) 
gather(DF, Var, TIME,-ID) %>% 
          select(-Var) 
+0

感謝您的快速回復。 [,-2]表示什麼? – ykl 2014-12-05 15:35:08

+0

@yki我在刪除結果中不需要的'2nd'列。您還可以閱讀'?Extract'的行和列索引。 – akrun 2014-12-05 15:36:32

+0

非常感謝! – ykl 2014-12-05 15:38:39

相關問題