【问题标题】:Error:attempt to apply non-function错误:尝试应用非功能
【发布时间】:2013-04-27 20:40:42
【问题描述】:

我正在尝试在 R 中运行以下代码,但出现错误。

我不确定公式的哪一部分不正确。任何帮助将不胜感激。

> censusdata_20$AGB93 = WD * exp(-1.239 + 1.980 * log (DIAM93) + 0.207 (log(DIAM93))^2 
                        - 0.0281 (log(DIAM93))^3)
Error: attempt to apply non-function

【问题讨论】:

  • 您能提供任何其他信息吗?如果至少没有您使用的语言,这个问题目前是无法回答的。
  • 对不起,我使用的是 'r' - 在我的第一篇文章中完全错过了。
  • 为什么这个问题仍然被标记为不是一个真正的问题?有人可以取消投票,因为在我看来这是一个真正的问题,不应该被关闭?

标签: r error-handling


【解决方案1】:

您在表达式的最后两个术语中缺少 *s,因此 R 将(例如)0.207 (log(DIAM93))^2 解释为尝试调用名为 0.207 的函数 ...

例如:

> 1 + 2*(3)
[1] 7
> 1 + 2 (3)

错误:尝试应用非函数

您的(不可重现的)表达式应为:

censusdata_20$AGB93 = WD * exp(-1.239 + 1.980 * log (DIAM93) + 
                              0.207* (log(DIAM93))^2  -
                              0.0281*(log(DIAM93))^3)

Mathematica 是我所知道的唯一一个允许并列用于乘法运算的计算机系统...

【讨论】:

  • 遇到了同样的问题,太笨了,谢谢 Ben Bolker:D
  • 这个错误的字面意思是否意味着一个人正试图在一个不是函数的东西上调用一个函数(apply)?
  • “无功能”为 0.207。 0.207 (log(DIAM93)) 被解释为使用参数“log(DIAM93)”调用函数“0.207”
【解决方案2】:

由于一个笨拙的错字,我得到了错误:

这个错误:

knitr::opts_chunk$seet(echo = FALSE)

错误:尝试应用非函数

纠正错字后,它可以工作了:

knitr::opts_chunk$set(echo = FALSE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-16
    • 2018-10-09
    • 1970-01-01
    相关资源
    最近更新 更多