2014-12-05 40 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

相关问题