Я «перевожу» некоторый код, представленный в 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]
Я пытался использовать функцию ifelse в R, которая не сработала.
Я также пытался использовать приведенное ниже, но, похоже, это не сработало.
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]
Ожидаемым результатом будет список скорректированных значений