我有一个包含多个资金和日期的巨大数据框,我想知道是否有一种简便快捷的方法来转换如下所示的数据框:
#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
预先感谢
答案 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))