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

R语言Swirl编程functions练习报错:调用evaluate提示找不到func

解决Swirl中evaluate函数调用报错的问题

报错Error in func(dat) : could not find function "func"的核心原因是Swirl练习环境对函数参数的作用域限制较严格,直接调用传入的函数对象会出现解析问题,以下是几种可行的解决办法:

  • 先验证函数是否存在:输入exists("evaluate")确认你定义的evaluate函数在当前环境中。如果返回FALSE,重新执行函数定义代码。
  • 修改函数定义为使用do.call:
    evaluate <- function(func, dat){
      do.call(func, list(dat))
    }
    
    之后调用evaluate(sd, c(1.4, 3.6, 7.9, 8.8))即可正常计算标准差。
  • 改用字符串传递函数名:
    evaluate <- function(func, dat){
      get(func)(dat)
    }
    
    调用时传入函数名字符串:evaluate("sd", c(1.4, 3.6, 7.9, 8.8))
  • 重新在Swirl环境中定义函数:如果之前的定义没生效,退出当前练习步骤,重新输入函数定义代码,确保定义完成后立即执行调用命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 20:32:03