首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中特殊列的RMSE计算

R中特殊列的RMSE计算
EN

Stack Overflow用户
提问于 2019-04-18 12:07:58
回答 1查看 739关注 0票数 0

我在R中有这样一个数据帧:

代码语言:javascript
复制
set.seed(10)
sample <- data_frame(Date   = c('2000-05-01','2000-05-02','2000-05-03','2000-05-04',"2000-05-05",'2000-05-06'),
                 T1 = rnorm(6),
                 T2 = rnorm(6),
                 T3 = rnorm(6),
                 T1_a  = rnorm(6),
                 T1_b = rnorm(6), 
                 T1_c = rnorm(6), 
                 T2_a  = rnorm(6),
                 T2_b = rnorm(6), 
                 T2_c = rnorm(6), 
                 T3_a  = rnorm(6),
                 T3_b = rnorm(6), 
                 T3_c = rnorm(6))

我想使用这样的MLmetrics包来计算均方根误差:

代码语言:javascript
复制
library(MLmetrics)
RMSE_T1_a = RMSE(sample$T1, sample$T1_a)
RMSE_T1_b = RMSE(sample$T1, sample$T1_b)
RMSE_T1_c = RMSE(sample$T1, sample$T1_c)

RMSE_T2_a = RMSE(sample$T2, sample$T2_a)
RMSE_T2_b = RMSE(sample$T2, sample$T2_b)
RMSE_T2_c = RMSE(sample$T2, sample$T2_c)

RMSE_T3_a = RMSE(sample$T3, sample$T3_a)
RMSE_T3_b = RMSE(sample$T3, sample$T3_b)
RMSE_T3_c = RMSE(sample$T3, sample$T3_c)

最后,我想把所有这些RMSE放在一个dataframe中。

有更快的方法一次做到这一切吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-18 13:52:40

一种方法是像这样使用dplyr包:

代码语言:javascript
复制
library(dplyr)
rmsedata <- sample %>%
  summarise_at(vars(matches("T1_")), ~RMSE(T1, .x)) %>%
  bind_cols(sample %>%summarise_at(vars(matches("T2_")), ~RMSE(T2, .x))) %>%
  bind_cols(sample %>%summarise_at(vars(matches("T3_")), ~RMSE(T3, .x)))

      T1_a      T1_b    T1_c     T2_a      T2_b      T2_c      T3_a     T3_b     T3_c
1 1.391521 0.6828504 1.61983 1.195112 0.8101942 0.8953161 0.7983381 1.396028 1.171313

有一个小建议:不要命名数据示例:有一个名为sample的R函数,命名数据示例也会导致混淆:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55745735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档