【问题标题】:How to read tickers from CSV and loop through them如何从 CSV 读取代码并循环遍历它们
【发布时间】:2017-01-02 13:10:01
【问题描述】:

我是 R 新手,我正在尝试将我的代码存储在 CSV 文件中,让我的代码从 CSV 读取并运行一些代码,我的 CSV 只有 3 行:

代码

YHOO

IBM

下面是我的代码。

Stocks <- read.csv(file.choose(),head=T) # tried to put in sep="," no luck
#loop through the tickers
for (i in Stocks){

getSymbols(i) 
# do something here
}

然后我得到这个错误 do.call(paste("getSymbols.", symbol.source, sep = ""), list(Symbols = current.symbols, 中的错误: 找不到函数“getSymbols.1”

我尝试调试,所以我这样做了

for (i in Stocks) {print (i)}

[1] YHOO IBM

级别:IBM YHOO

这就是我得到的。我认为当我尝试运行循环时,代码会将 YHOO IBM 作为 1 个股票代码,而不是一次加载 1 个股票代码。 有人可以建议从 CSV 文件中读取并循环通过股票行情的正确方法是什么? 感谢您的建议!

【问题讨论】:

  • 很有可能很有可能您的换行符有问题,我们无法通过手动输入的“数据”来诊断此问题
  • 您能否在 R 代码中创建 CSV 文件以使其可重现?

标签: r


【解决方案1】:

您的 read 语句和 data.frame 都没有问题。唯一的问题是您的 for 循环。你需要:

 for (i in Stocks$Ticker) {print (i)}
[1] "YHOO"
[1] "IBM"

【讨论】:

    【解决方案2】:

    getSymbols 可以将向量作为输入,因此不需要循环,例如您可以执行以下操作:

    Stocks <- read.csv(file.choose(),head=T)     
    
    getSymbols(as.vector(Stocks$Ticker))
    

    【讨论】:

    • 只是在quantmod库中添加:getSymbols
    猜你喜欢
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 2018-01-14
    • 2011-03-27
    相关资源
    最近更新 更多