У меня есть набор данных, где я сделал несколько прогнозов.Теперь я хочу вычислить RMSPE , и для этого я использую пакет MLmetrics , как я понимаю, путем ввода прогнозируемого и фактического значения я получу RMSPE .Как бы то ни было, я запутался, как я могу использовать это в data.table , чтобы пропустить 2 набора столбцов.
Мой примерный набор данных будет выглядеть примерно так, как показано ниже -
library(data.table)
library(MLmetrics)
set.seed(123)
id <- seq(1001,1100,1)
city <- sample(1:4,100,replace = T)
a1 <- sample(1:100,100,replace = T)
a2 <- sample(1:100,100,replace = T)
a3 <- sample(1:100,100,replace = T)
a4 <- sample(1:100,100,replace = T)
a5 <- sample(1:100,100,replace = T)
p1 <- sample(1:100,100,replace = T)
p2 <- sample(1:100,100,replace = T)
p3 <- sample(1:100,100,replace = T)
p4 <- sample(1:100,100,replace = T)
p5 <- sample(1:100,100,replace = T)
df1 <- as.data.table(data.frame(id,city,a1,a2,a3,a4,a5,p1,p2,p3,p4,p5))
RMSPE <- df1[, lapply(.SD, function(x,y) RMSPE(x,y),
by = city, .SDcols = **xxxx**)]
Таким образом, в этом случае a1, a2, a3, a4, a5 - мои действительные значения, а p1, p2, p3, p4, p5 - мои прогнозируемые значения. Я хочу передать p1, p2, p3, p4, p5 как xи a1, a2, a3, a4, a5 как y.В результате я ожидаю получить сводную таблицу с 4 строками (по одной для каждого города) и 6 столбцами, 1-й для города, столбец 2-6 для RMSPE для каждой переменной.
Как я могу получить это в data.table.Чем заменить xxxx на?
Спасибо !!