You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R的tidymodels中用summarise()聚合rmse与cor?

解决summarise()中同时计算RMSE和相关系数的问题

错误原因

tidymodels中的rmse()函数属于yardstick包,它要求第一个输入参数是数据框,但在summarise()中直接调用时,会将price和prediction作为向量传入,不符合函数的参数要求,因此触发报错。

两种可行解决方法

方法1:手动计算RMSE

RMSE的本质是均方根误差,直接用公式实现,无需依赖特定函数,可直接在summarise()中与cor()配合使用:

library(tidymodels)  
price = 1:50
prediction = price * 0.9
My_tibble = tibble(price=price, prediction=prediction)

My_tibble %>%
  summarise(
    rmse = sqrt(mean((price - prediction)^2)),
    cor = cor(price, prediction)
  )

方法2:使用向量版RMSE函数

yardstick包提供了面向向量的rmse_vec()函数,专门用于对向量计算RMSE,完美适配summarise()的场景:

My_tibble %>%
  summarise(
    rmse = rmse_vec(truth = price, estimate = prediction),
    cor = cor(price, prediction)
  )

补充说明

  • rmse()是面向数据框的高层接口,返回的是包含指标结果的tibble,适合单独调用查看完整指标信息;
  • rmse_vec()是底层向量接口,直接返回数值结果,适合在summarise()中与其他统计量合并计算。

内容的提问来源于stack exchange,提问作者Yang Yang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 05:15:40