【发布时间】:2018-06-04 09:09:12
【问题描述】:
我有一个数据集,我在其中做了一些预测。我现在想计算 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 列,第一个用于城市,第 2-6 列用于每个变量的 RMSPE。 p>
如何在 data.table 中获取此信息。我应该用什么替换 xxxx?
谢谢!!
【问题讨论】:
-
@chinsoon12,这将创建 20 行和 2 个变量......我正在寻找 4 行和 6 个变量的输出
-
@chinsoon12,这给出了 4 行和 1 个 RMSPE 变量:(.....
-
@chinsoon12,感谢您的回答和建议。但是在我的实际数据中,变量名没有模式。我的意思是它们不以 1、2、3、4 等为后缀。因此,将它们存储在向量中可能是一种选择,例如实际 = c(a1、a2、a4、a4、a5) 和 pred = c( p1,p2,p3,p4,p5)(我需要为名称添加“”)......这就是我创建一个函数来传递两个向量但不知道如何传递它们的原因应用
标签: r data.table lapply