如何估算小组中的职能?

时间:2019-06-25 01:30:17

标签: r function

我有一个数据框,其中有1530个6个变量的obs。在此数据框中,有51个资产,每个资产有30个Obs。我试图应用de MACD函数来获取两个值:macd和signal,但显示错误。这是一个示例:

macdusdt <- filtusdt %>% group_by(symbol) %>% do(tail(., n = 30))

macd1m <- macdusdt %>% 
              mutate (signals = MACD(macdusdt$lastPrice, 
             nFast = 12, nSlow = 26, nSig = 9, maType = "EMA", percent = T))
  

错误:列signals的长度必须为30(组大小)或一个而不是3060。

我想将de MACD功能应用于数据帧中的每个资产。数据库在这里:https://www.dropbox.com/s/ww8stgsspqi8tef/macdusdt.xlsx?dl=0

1 个答案:

答案 0 :(得分:0)

根据提供的数据,应用代码时会出现错误

  

EMA中的错误(c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,:     n>第1列中非NA值的数量

为防止这种情况发生,

library(dplyr)
library(TTR)
filtusdt %>%
     group_by(symbol) %>%
     slice(tail(row_number(), 30)) %>% 
     mutate(signals = if(n() < sum(is.na(lastPrice))) MACD(lastPrice,  
       nFast = 12, nSlow = 26, nSig = 9, maType = "EMA", percent = TRUE) else NA)

由于提供了子集数据集,这可能是一个问题