У меня есть таблица data.table, подобная приведенной ниже:
data.table(`COLOUR` = c("red", "blue", "green"),
`COUNT(1:1)` = 5:7,
`COUNT(2:1)` = 1:3,
`COUNT(1:2)` = 1:3,
`COUNT(2:2)` = 6:8,
`RATE(1:1)` = 1/(1:3),
`RATE(2:1)` = 2/(2:4),
`RATE(1:2)` = 3/(4:6),
`RATE(2:2)` = 1,
`INDICATOR(2)` = c("left", "lefter", "leftest")
`INDICATOR(1)` = c("right", "righter", "more right"))
Мне нужно melt
, чтобы получить длинный результат, аналогичный приведенному ниже:
structure(list(COLOUR = c("red", "red", "red", "red", "blue",
"blue", "blue", "blue", "green", "green", "green", "green"),
x = c(1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2), y = c(1, 2, 1,
2, 1, 2, 1, 2, 1, 2, 1, 2), INDICATOR = c("right", "left",
"right", "left", "righter", "lefter", "righter", "lefter",
"more right", "leftest", "more right", "leftest"), COUNT = c(5,
2, 1, 6, 6, 2, 2, 7, 7, 3, 3, 8), RATE = c(1, 0.75, 1, 1,
0.5, 0.6667, 0.6, 1, 0.333, 0.5, 0.5, 1)), row.names = c(NA,
-12L), class = c("data.table", "data.frame"), .internal.selfref = <pointer: 0x0000014d26c41ef0>)
Вы заметите что столбцы в исходном наборе дат имеют две переменные, хранящиеся в их имени столбца для COUNT
и RATE
: значения x
и y
, а столбцы INDICATOR
хранят значение y
в своем имени столбца .
Я надеюсь использовать melt
для этого и подозреваю, что для этого потребуется несколько приложений, однако я не совсем уверен, как лучше go об этом.