Проблема с SMA не правильно рассчитывается - PullRequest
0 голосов
/ 20 апреля 2019

У меня есть большие наборы данных, для которых мне нужно создать скользящие средние.

Я использую df$new_value1=replace(df$value, df$value<2.0,0), чтобы получить то, что мне нужно (то есть значения> = 2.0).

Затем я использую df$new_value2=round((df$new_value1)*50,1)

Как только у меня есть дата, как мне нужно, я вычисляю SMA, используя:

df=df%>%
  group_by(Name) %>%
  mutate(SMA1 = round(TTR::SMA(new_value2,50),1)) %>%
  mutate(SMA2 = round(TTR::SMA(new_value2,100),1)) %>%
  mutate(SMA3 = round(TTR::SMA(new_value2,150),1)) %>%
  mutate(SMA4 = round(TTR::SMA(new_value2,200),1)) %>%
  mutate(SMA5 = round(TTR::SMA(new_value2,250),1))`

Хотя это работает по большей части ион создаст SMA, как мне нужно, я получу вывод, подобный следующему:

Name    new_value2     SMA5(Current)     SMA5(What it should be)
 A         2.2
 A         2.3
 A         2.5
 A         3.0
 A         2.7            2.54                 2.54
 A         2.1            2.52                 2.53
 A          0             2.52                 2.06
 A          0             2.52                 1.56
 A          0             2.52                 0.96
 A          0             2.52                 0.42
 A          0             0.00                 0.00

Моя проблема в том, что он держится до последнего числа (почти похоже, что он не распознает нули), ачем усреднение вниз с нулями.Я бы хотел, чтобы данные выглядели как крайний правый столбец, но сейчас он выглядит как 3-й столбец.Я не уверен, в чем проблема.

...