1. Convert pivot format to DB format

We have a data frame M3FORACI as pivot format

head(M3FORACI)

Now, we want to convert this pivot format to DB format

Using function melt of reshape package:

dat1 <- melt(M3FORACI, id = c("series", "method", "timestamp", "origin_timestamp"), measure.vars = c("forecast", "Lo80", "Hi80", "Lo95", "Hi95"))

The result will as follows:

head(dat1)

2. Convert DB format to pivot format (convert dat1 to M3FORACI)

Using function spread in “tidyr” pacakge:

dat2 <- spread(dat1, key = variable, value = value)

This is the result of dat2:

head(dat2)
LS0tDQp0aXRsZTogIlJlc2hhcGUgZGYiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIyMxLiBDb252ZXJ0IHBpdm90IGZvcm1hdCB0byBEQiBmb3JtYXQNCg0KIyMjI1dlIGhhdmUgYSBkYXRhIGZyYW1lIE0zRk9SQUNJIGFzIHBpdm90IGZvcm1hdA0KDQpgYGB7cn0NCmhlYWQoTTNGT1JBQ0kpDQpgYGANCg0KIyMjI05vdywgd2Ugd2FudCB0byBjb252ZXJ0IHRoaXMgcGl2b3QgZm9ybWF0IHRvIERCIGZvcm1hdA0KVXNpbmcgZnVuY3Rpb24gKm1lbHQqIG9mICpyZXNoYXBlKiBwYWNrYWdlOg0KDQpgYGB7cn0NCmRhdDEgPC0gbWVsdChNM0ZPUkFDSSwgaWQgPSBjKCJzZXJpZXMiLCAibWV0aG9kIiwgInRpbWVzdGFtcCIsICJvcmlnaW5fdGltZXN0YW1wIiksIG1lYXN1cmUudmFycyA9IGMoImZvcmVjYXN0IiwgIkxvODAiLCAiSGk4MCIsICJMbzk1IiwgIkhpOTUiKSkNCmBgYA0KDQpUaGUgcmVzdWx0IHdpbGwgYXMgZm9sbG93czoNCmBgYHtyfQ0KaGVhZChkYXQxKQ0KYGBgDQoNCiMjIzIuIENvbnZlcnQgREIgZm9ybWF0IHRvIHBpdm90IGZvcm1hdCAoY29udmVydCBkYXQxIHRvIE0zRk9SQUNJKQ0KIyMjIyBVc2luZyBmdW5jdGlvbiAqc3ByZWFkKiBpbiAgInRpZHlyIiBwYWNha2dlOg0KDQpgYGB7cn0NCg0KZGF0MiA8LSBzcHJlYWQoZGF0MSwga2V5ID0gdmFyaWFibGUsIHZhbHVlID0gdmFsdWUpDQpgYGANCg0KIyMjIyBUaGlzIGlzIHRoZSByZXN1bHQgb2YgZGF0MjoNCg0KYGBge3J9DQpoZWFkKGRhdDIpDQpgYGANCg0K