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

在R的brms中使用正则表达式提取变量名报错求助

问题解决

错误原因

你遇到的错误源于两个核心问题:

  • 正则表达式未作为字符串传入:regex_pars 参数要求接收字符类型的正则表达式,但你的代码直接写了未加引号的表达式,R 会将其解析为代码而非字符串,触发「尝试应用非函数」的错误。
  • 正则语法不符合要求:变量名中的方括号 [] 是正则特殊字符,需要转义;同时你的表达式未覆盖变量名的完整前缀 r_Year[,匹配逻辑不完整。

修正后的代码

library(bayesplot)
ma <- mcmc_intervals(
  bmodel,
  regex_pars = "^r_Year\\[20(07|08|09|10|11),KineticEnergy\\]$", 
  prob = 0.80,
  point_est = "mean",
  prob_outer = 1,
  outer_size = 0.2,
  point_size = 3
) 

正则表达式说明

  • ^r_Year\\[:匹配变量名开头的 r_Year[(方括号 [ 是正则特殊字符,需用 \\ 转义)。
  • 20(07|08|09|10|11):精准匹配 2007-2011 这几个年份。
  • ,KineticEnergy\\]$:匹配变量名结尾的 ,KineticEnergy](同样转义方括号 ])。
  • ^ 和 $ 确保完全匹配整个变量名,避免误匹配其他相似变量。

简化版正则(可选)

如果想简化年份匹配逻辑,可使用等价的缩写形式:

regex_pars = "^r_Year\\[20(0[7-9]|1[01]),KineticEnergy\\]$"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:18:16