【发布时间】:2019-08-13 17:07:19
【问题描述】:
我正在将 IDL 中提供的一些代码“翻译”成 R。
有许多元素,我目前正在努力解决其中一个问题。
以下代码广泛用于计算该值;
如果 RelAA 大于 180,则该值应转换为 360 - [表示值],如果 RelAA 小于 180,则该值应转换为 180 - [表示值]。
在IDL中是这样的;
calculate relative azimuth angle (RelAzm)
RelAA = ABS((sazm) - (vazm))
index_gt180 = where(RelAA gt 180.d)
index_lt180 = where(RelAA lt 180.d)
RelAA[index_gt180] = 360.- RelAA[index_gt180]
RelAA[index_lt180] = 180.- RelAA[index_lt180]
我尝试在 R 中使用 ifelse 函数,但不起作用。
我也尝试过使用下面的方法,但似乎没有用。
relaa[relaa > 180] = 360 - relaa[relaa > 180]
relaa[relaa < 180] = 180 - relaa[relaa < 180]
任何想法都将不胜感激。
relaa[relaa > 180] = 360 - relaa[relaa > 180]
relaa[relaa < 180] = 180 - relaa[relaa < 180]
calculate relative azimuth angle (RelAzm)
RelAA = ABS((sazm) - (vazm))
index_gt180 = where(RelAA gt 180.d)
index_lt180 = where(RelAA lt 180.d)
RelAA[index_gt180] = 360.- RelAA[index_gt180]
RelAA[index_lt180] = 180.- RelAA[index_lt180]
预期的结果将是更正值的列表
【问题讨论】: