R:转换类似Excel的索引+ Corresp的df

时间:2019-04-19 04:21:40

标签: r

我有一个包含多个资金和日期的巨大数据框,我想知道是否有一种简便快捷的方法来转换如下所示的数据框:

#this is just a sample
Name    01/01/2016  01/02/2016  01/03/2016
Fund1   1   2   3
Fund2   4   5   6
Fund3   7   8   9


变成这样:

Fund1   01/01/2016  1
Fund1   01/02/2016  2
Fund1   01/03/2016  3
Fund2   01/01/2016  4
Fund2   01/02/2016  5
Fund2   01/03/2016  6
Fund3   01/01/2016  7
Fund3   01/02/2016  8
Fund3   01/03/2016  9

预先感谢

1 个答案:

答案 0 :(得分:-1)

我们可以使用gather将其转换为'long'格式

library(dplyr)
library(tidyr)
gather(df1, key, val, -Name) %>%
     arrange(Name) 
#    Name        key val
#1 Fund1 01.01.2016   1
#2 Fund1 01.02.2016   2
#3 Fund1 01.03.2016   3
#4 Fund2 01.01.2016   4
#5 Fund2 01.02.2016   5
#6 Fund2 01.03.2016   6
#7 Fund3 01.01.2016   7
#8 Fund3 01.02.2016   8
#9 Fund3 01.03.2016   9

数据

df1 <- structure(list(Name = c("Fund1", "Fund2", "Fund3"), `01.01.2016` = c(1L, 
4L, 7L), `01.02.2016` = c(2L, 5L, 8L), `01.03.2016` = c(3L, 6L, 
 9L)), class = "data.frame", row.names = c(NA, -3L))