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

使用mixR包时R函数调用报错:对象'column_names'未找到

问题原因

报错Error in eval(mc, environment()) : object 'column_names' not found的根源是mixR包的plot.mixfit函数内部使用了非标准求值逻辑。当你在自定义函数中直接将paste0("Gaussian mixR Model", column_names)作为title参数传入时,plot函数会尝试在全局环境(而非自定义函数的局部环境)中查找column_names变量,导致找不到该对象而报错。

解决方案

提前在函数内部计算好标题字符串,将其赋值给一个局部变量后再传入plot函数,避免plot函数直接对未求值的表达式进行解析:

mixR_plot = function(data, column_names){
  fit = mixR::mixfit(data[[column_names]], ncomp = 2)
  # 提前计算标题,避免plot函数解析表达式时找不到变量
  plot_title = paste0("Gaussian mixR Model ", column_names)
  print(plot(fit, what = "after_stat(density)", title = plot_title, cex.main = 20))
}

# 调用测试
mixR_plot(twins, "apple")
补充说明

单独运行时正常,是因为"apple"是直接传入paste0的字符串常量,plot函数不需要解析变量;而封装成函数后,column_names是局部变量,plot的非标准求值逻辑无法在正确的环境中找到它,提前计算标题可以绕过这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:43:11