R包主函数调用comp_hc_forz_front时触发Ops.POSIXt错误
问题原因与解决方案
错误直接原因
你在主函数调用comp_hc_forz_front时,参数传递出现语法错误:将db$k_air误写成了db&k_air。
为何触发POSIXt错误
&是R中的逻辑与运算符,当执行db & k_air时,R会尝试对整个数据框db和对象k_air做逻辑与运算。如果数据框db中包含POSIXt类型的列(即便你确认输入数据为double,可能存在未留意的日期时间列),R会尝试对POSIXt对象执行&操作,但R并未定义该类型的&运算规则,因此抛出Error Ops.POSIXt(left, right) : '&' not defined for POSIXt objects错误。
全局环境调用正常的原因
你在全局环境直接调用函数时,应该是正确使用了db$k_air传递参数,没有触发错误的运算符使用,因此函数能正常执行。
修复方法
将主函数中的调用代码修改为:
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)
把错误的db&k_air替换为正确的列引用db$k_air即可。
内容的提问来源于stack exchange,提问作者BigF
相关产品推荐
相关产品推荐

