如何在R中转换数据表结构

时间:2018-06-25 07:29:29

标签: r format

我具有以下数据格式。 它已根据日期绑定了a,b数据。

a           b            days
--------------------------------
c(1,2,3)  c(1,2,3)   2018-06-22
c(4,5,6)  c(4,5,6)   2018-06-23
....
--------------------------------

我想将其转换为不同的格式 根据天有a,b列

2018-06-22       2018-06-23   ....
-------------------------------
a      b         a        b
-----------------------------
1     1          4        4
2     2          5        5
3     3          3        3

我该如何转换?

1 个答案:

答案 0 :(得分:1)

这是我能做的最好的事情。它使用data.table包,并以长格式输出转换后的数据。

require(data.table)

# your data
dt1 <- data.table(a = list(c(1,2,3),c(4,5,6)), b = list(c(1,2,3),c(4,5,6)), days =  c("2018-06-22","2018-06-23"))

# to long format
dt2 <- melt(dt1,id.vars = 3)

# unlist
dt3 <- dt2[ , unlist(value), by = c("days","variable")]

#result
  days variable V1
 1: 2018-06-22        a  1
 2: 2018-06-22        a  2
 3: 2018-06-22        a  3
 4: 2018-06-23        a  4
 5: 2018-06-23        a  5
 6: 2018-06-23        a  6
 7: 2018-06-22        b  1
 8: 2018-06-22        b  2
 9: 2018-06-22        b  3
10: 2018-06-23        b  4
11: 2018-06-23        b  5
12: 2018-06-23        b  6