SMA无法正确计算的问题

时间:2019-04-20 01:33:39

标签: r moving-average

我有大量数据集,需要为其生成移动平均值。

我用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列。我不确定是什么问题。

0 个答案:

没有答案