我具有以下数据格式。 它已根据日期绑定了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
我该如何转换?
答案 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