r - Есть ли способ проверить, является ли число радианом или градусом? - PullRequest
0 голосов
/ 20 марта 2019

Я добавляю тесты в мой пакет R iemisc.Ранее я создавал функции, чтобы использовать градусы, а не радианы для тригонометрических функций.

Есть ли способ определить, находится ли данное число в радианах и градусах?

Если это так, то я бы хотелвключить этот метод в мои тесты.

Например, на основе недавней статьи в блоге Win-Vector, написанной Джоном Маунтом, http://www.win -vector.com / blog / 2019/03 / unit-tests-in-r / и виньетка RUnit, я написал следующий тест для cosd:

test_cosd <- function() {

library("iemisc")
RUnit::checkEquals(cosd(360), 1)
RUnit::checkEquals(cosd(90), 0)
RUnit::checkEquals(cosd(0), 1)
RUnit::checkException(cosd(pi * 3 / 4))
RUnit::checkException(cosd("sq"))

  invisible(NULL)
}

Однако я хотел бы иметь checkException для чисел, которые являются измерениями радиана, а не градусами.

Спасибо.

1 Ответ

1 голос
/ 29 марта 2019

Можно использовать разницу в величине между показателями, чтобы сделать разумный вывод о том, являются ли входные данные градусами или радианами. Измерение в градусах примерно в 60 раз больше того же измерения в радианах. Это видно из базовых отношений:

180 degrees = pi (3.14159) radians

Возможна простая эвристика, если вы можете с уверенностью предположить, что пользователи будут использовать инструмент только с углами, меньшими, чем полный круг (что не является необоснованным во многих физических приложениях, если не используются спирали с штопором). В этом случае было бы безопасно принять значения, превышающие 2 * пи, или 6,28 представляет градусы.

В противном случае сами значения неразличимы.

...