Итак, проблема здесь в том, что R индексирует векторы, начиная с 1, поэтому, если вы укажете значение типа floor((293/45)+0.5)+1
, которое возвращает 8, ваш индекс будет равен 0, а возвращаемое значение функции будет NA
Как насчет того, чтобы попытаться работать с базовой функцией R cut
?
DegToDer <- function (degree) {
return(cut(
x = degree,
breaks = c(0, seq(22.5, 337.5, 45), 360),
labels = c("N","NE","E","SE","S","SW","W","NW","N"),
include.lowest = TRUE
))
}