R:使用变量时如何避免使用显式名称

选择

我在R中有以下代码:

library(quantmod)

mySymbol = "^STOXX50E"
getSymbols(mySymbol, from="2004-01-01", to=Sys.Date())

chartSeries(Cl(STOXX50E))

只需下载内部Eurostoxx的时间序列,然后绘制收盘价即可。它按预期工作。无论如何,我想知道如何避免每次我要引用此变量时都明确地写“ STOXX50E”。例如,我希望能够使用通用名称(如“ INDEX”)引用包含数据的变量,这样,当我想使用另一个inder启动代码时,就无需更改所有调用。

例如,如果我要下载并标绘S&P500的收盘价,我必须这样做:

library(quantmod)

mySymbol = "^GSPC"
getSymbols(mySymbol, from="2004-01-01", to=Sys.Date())

chartSeries(Cl(GSPC))

所以我不仅要在第二行而且还要在最后一行更改变量名。我更喜欢一些通用的东西:

library(quantmod)

mySymbol = "^GSPC"
getSymbols(mySymbol, from="2004-01-01", to=Sys.Date())

chartSeries(Cl(mySymbol))

这样,一旦我为mySymbol设置了名称,就不必更改其余所有代码。但这是行不通的。我该怎么做?

LyzandeR

您可以这样操作:

library(quantmod)

mySymbol = "^STOXX50E"
getSymbols(mySymbol, from="2004-01-01", to=Sys.Date())

chartSeries(Cl(get(substring(mySymbol,2,nchar(mysymbol)))))

如果要更改图的标题,请执行以下操作:

chartSeries(Cl(get(substring(mySymbol,2,nchar(mysymbol)))), name=mySymbol)

本质上,当您使用getSymbols名为的变量时,该变量STOXX50E存储在包含数据的全局环境中。使用,get您可以通过提供字符串“ ^ STOXX50E”来访问变量名。然后substring我使用以避免变量mySymbol的第一个字符为^

而且有效。您实质上进行了更改mySymbol,并且代码无需更改就可以运行!

在此处输入图片说明

编辑:

就代码更易读和避免^标题中的烦人而言,这可能是一种更好的方法

library(quantmod)

mySymbol = "STOXX50E"
getSymbols(paste('^',mySymbol,sep=''), from="2004-01-01", to=Sys.Date())

chartSeries(Cl(get(mySymbol)),name=mySymbol)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用实体框架避免使用Oracle模式名称

UWP:如何在Templete Control开发中避免使用样式名称(x:Name)?

如何使用XCB获取模式名称?

使用JPA时,如何在部署时为序列设置模式名称?

R:当名称存储在变量中时,如何使用$?

在使用Jquery时如何回显PHP会话变量?

如何在Pony ORM中使用Oracle模式名称?

休眠以及如何避免模式名称更改

Excel 365 函数/公式名称被翻译。如何避免?

使用extract()时的显式变量声明

识别使用的设计模式名称

使用New-Variable函数创建变量时如何显式声明变量的类型?

在R中创建列表时如何使用变量作为元素名称

如何使用php变量回显图像

使用动态名称生成时如何避免具有相同 ID/名称的不同 html 元素

使用bash将输出发送到文件时>的正式名称是什么

如何使用JavaScript避免未使用的变量?

在R中使用as.numeric()时如何避免数字舍入?

页首如何使用正则表达式名称监视进程?

VBA,Excel如何在不使用样式名称的情况下设置特定样式?

如何使用python宏获取libreoffice文档中段落的样式名称?

在bash脚本中回显变量时,如何避免\ n转换为空格?

在 Python 中使用 eval() 时如何避免对未使用的局部变量发出警告

R,如何使用变量的内容作为列表字段的名称?

如何避免使用全局变量?

如何避免使用全局变量?

如何避免页脚使用相同实例变量

如何避免在 Ruby 中使用类变量

如何避免使用全局变量?