R语言 在主函数中调用函数时出错Ops.POSXt;外线呼叫测试运行正常

svmlkihl  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(95)

我正在Windows 10 Pro机器上用R构建一些个人软件包。我正在运行一个包,它是单个函数的集合,其中一个main函数调用所需的内容。当执行调用comp_hc_forz_front函数时,我遇到了Error Ops.POSIXt(left, right) : '&' not defined for POSIXt objects错误。
当main函数调用这个函数时,这个函数应该向一个框架中添加一个列。在这个调用之前,我尝试将该框架导出到全局环境,该框架没有问题。
此外,如果我尝试在全局环境中调用comp_hc_forz_front函数,一切都很好,我得到了新的列,其中包含所有计算的值。
这是函数

comp_hc_forz_front <- function(n_reynolds=NULL, k_air=NULL, height_modulo=1, width_modulo=1) {

  sup_modulo <- height_modulo*width_modulo
  Lc <- sup_modulo / (2*(height_modulo+width_modulo))

  value <- k_air/Lc * (2+0.41*(n_reynolds^0.55)) * sup_modulo

  return(value)

}

这是main函数内部的调用,

db$hc_forz_front <- comp_hc_forz_front(n_reynolds=db$n_reynolds, k_air=db&k_air, height_modulo=height_modulo, width_modulo=width_modulo)

我没有在网上找到太多,我不能理解POSIX和一个函数之间的联系,这个函数向一个嵌套框添加一些值。我检查了点阵,所有的输入数据都被确认为是双精度的。
为什么函数在主函数之外工作,而不是在主模拟期间工作,这个错误是关于什么的?
提前感谢您
我仔细检查了函数,重新构建了包,在for循环中执行了计算,传递了向量的每个值。反正我是犯了错。

ou6hu8tu

ou6hu8tu1#

您的代码中有一个错误的&符号:

db$hc_forz_front <- comp_hc_forz_front(n_reynolds=db$n_reynolds, k_air=db&k_air
_________________________________________________________________________^

相关问题