问题描述
对这个问题的任何帮助表示赞赏,我意识到这可能是一个非常愚蠢的问题。
我正在尝试创建一个函数,该函数根据财务数据计算各种指标,在本例中,sma
来自使用 R 中的 QUANTMOD
包下载的 xts 变量中的列。问题在于下载的变量名称中带有“-”符号 (XLM-USD),我不知道如何使用它,因为它会产生错误,我也找不到重命名此变量的简单方法。
任何帮助将不胜感激。
谢谢:)
library(quantmod)
# download portfolio
getSymbols("XLM-USD",from="2021-03-01")
#create SMA function
mySMA <- function (price,n){
sma <- c()
sma[1:(n-1)] <- NA
for (i in n:length(price)){
sma[i]<-mean(price[(i-n+1):i])
}
sma <- reclass(sma,price)
return(sma)
}
SMA <- mySMA(Cl(XLM-USD),n=20)
生产
Error in has.Cl(x) : object 'XLM' not found
解决方法
来自?make.names
:
语法上有效的名称由字母、数字和点或下划线组成 字符并以字母或点开头,后面不跟数字。
不符合这些规则的变量名需要用反引号括起来:
SMA <- mySMA(Cl(`XLM-USD`),n=20)