2016-09-16 2 views
1

Я зациклился на том, как вычислить ошибку для параметра, устанавливающего, когда масштаб параметра является циклическим по своей природе.Как рассчитать разницу от контрольной точки по циклической шкале?

Например, параметр «A» может варьироваться от 0 до 1, которые представляют собой долю года (т.е. 0 = 1 января, 0,25 = 1 апреля, 0,5 = 1 июля, 0,75 = 1 октября и 1,0 = янв. 1 и т. Д.).

Как измерить разницу от контрольной точки. В этом случае я хотел бы, чтобы разница составляла min/max + - 0,5.

Вот пример, где точка отсчета 1 апреля:

ref <- 0.25 # Apr 1st 
val <- c(0.1, 0.3, 0.7, 0.95) # what is the difference from these values to ref 
minval <- 0 
maxval <- 1 

# expected output 
c(-0.15, 0.05, 0.45, -0.3) 

ответ

6

Вот идея:

((val-ref + .5) %% 1) - .5 
# [1] -0.15 0.05 0.45 -0.30 
+0

И если, например, вы работали в градусах по кругу, вы бы просто замените в '180' и' 360' за '.5' и' 1'. –

+0

Отлично - намного проще, чем то, что я пытался с длиной дуги и т. Д. Cheers –

Смежные вопросы