2017-06-21 43 views
0

我一直在试图重塑我的数据,我已经到了如何完成这一块。我有相当大的数据集,但这里有一个单行的例子:复制和转置数据

TJ25_TAD 

TJ_num  Date    Bin 1 Bin2 Bin3 
TJ25  4/18/2006 19:00  1.5  73.9 16.2 

我想复制每一行(每个日期/小时值,我有数百行),然后有针对单个列值,所以它看起来像这样:

TJ25_TAD 

TJ_num  Date    TAD 
TJ25  4/18/2006 19:00  1.5 
TJ25  4/18/2006 19:00  73.9 
TJ25  4/18/2006 19:00  16.2 

对于每个日期值我实际上有12箱。我设法能够复制每个日期值12次,我只是不知道如何填写Bin数据。我已阅读了melt()函数,但我不知道如何正确使用它。

回答

0
dt <- read.table(text = "TJ_num Date 'Bin 1' 'Bin 2' 'Bin 3' 
    TJ25 '4/18/2006 19:00' 1.5 73.9 16.2", 
       header = TRUE, stringsAsFactors = FALSE) 

library(dplyr) 
library(tidyr) 

dt2 <- dt %>% 
    gather(Bin, TAD, 'Bin.1', 'Bin.2', 'Bin.3') %>% 
    select(-Bin)