当我尝试在货币对上使用EMA功能时,在收盘价上,它似乎给我一个错误。代码和错误如下:
getSymbols('JPY=X', src= 'yahoo')
JPY.EMA.10 <- EMA(`JPY=X`.Close, n=10)
Error: unexpected symbol in "JPY.EMA.10 <- EMA(`JPY=X`.Close"
ps:我是R领域的初学者。抱歉,如果我的问题看起来太微不足道了。
问候
哈维
答案 0 :(得分:1)
确实存在一个带有等号的股票代码。
因此,这种符号会有点奇怪,但我们可以让它轻松工作:
library(quantmod)
getSymbols('JPY=X', src= 'yahoo')
#> Warning: JPY=X contains missing values. Some functions will not work if
#> objects contain missing values in the middle of the series. Consider using
#> na.omit(), na.approx(), na.fill(), etc to remove or replace them.
#> [1] "JPY=X"
EMA(`JPY=X`$`JPY=X.Close`, n = 10, na.rm = T)
#> Error in naCheck(x, n): Series contains non-leading NAs
我们仍然会收到错误,但这与EMA
函数有关,而不是某些语法错误。
您可以按警告中的建议使用na.omit(`JPY=X`)
修复错误。
我们还可以简化我们的生活,将变量分配给更标准的名称:
JPY_Close <- na.omit(`JPY=X`$`JPY=X.Close`)
EMA(JPY_Close, n = 10)
#> EMA
#> 2007-01-01 NA
#> 2007-01-02 NA
#> 2007-01-03 NA
#> 2007-01-04 NA
#> 2007-01-05 NA
#> 2007-01-08 NA
#> 2007-01-09 NA
#> 2007-01-10 NA
#> 2007-01-11 NA
#> 2007-01-12 119.26700
#> 2007-01-15 119.47664
#> 2007-01-16 119.71543
#> 2007-01-17 119.87990
#> 2007-01-18 120.13083
#> 2007-01-19 120.32704
#> 2007-01-22 120.56212
#> ...