Я пытаюсь расплавить этот набор данных:
raw1 <- c("Alpha", "2018-04-01", "566.0", "647.75", "669.08", "673.08", "675.00")
raw2 <- c("Alpha", "2018-04-02", "563.3", "651.08", "670.67", "684.58", "671.17")
mydf <- as.data.frame(rbind(raw1, raw2))
names(mydf) <- c("name", "date", "h1", "h2", "h3", "h4", "h5")
mydf
name date h1 h2 h3 h4 h5
Alpha 2018-04-01 566.0 647.75 669.08 673.08 675.00
Alpha 2018-04-02 563.3 651.08 670.67 684.58 671.17
Используя:
mynewdf <- melt(mydf, id.vars = c("name","date"), variable.name = "hour", value.name = "desiredName", measure.vars = names(mydf[,3:7]))
mynewdf
Я получаю:
name date hour desiredName
1 Alpha 2018-04-01 h1 566.0
2 Alpha 2018-04-02 h1 563.3
3 Alpha 2018-04-01 h2 647.75
4 Alpha 2018-04-02 h2 651.08
5 Alpha 2018-04-01 h3 669.08
6 Alpha 2018-04-02 h3 670.67
7 Alpha 2018-04-01 h4 673.08
8 Alpha 2018-04-02 h4 684.58
9 Alpha 2018-04-01 h5 675.00
10 Alpha 2018-04-02 h5 671.17
Но я бы хотел получить:
name date hour desiredName
Alpha 2018-04-01 h1 566.0
Alpha 2018-04-01 h2 647.75
Alpha 2018-04-01 h3 669.08
Alpha 2018-04-01 h4 673.08
Alpha 2018-04-01 h5 675.00
Alpha 2018-04-02 h1 563.3
Alpha 2018-04-02 h2 651.08
Alpha 2018-04-02 h3 670.67
Alpha 2018-04-02 h4 684.58
Alpha 2018-04-02 h5 671.17
Я попытался упорядочить по «часу», но R не распознает ни одного порядка в этой переменной. Должен ли я объявить это как фактор с заказом? Любой способ организовать желаемым образом непосредственно из функции расплава?
БЛАГОДАРЯ