【问题标题】:using tryCatch() in R to assign error values in loop在 R 中使用 tryCatch() 在循环中分配错误值
【发布时间】:2015-07-29 01:08:52
【问题描述】:

我正在为 R 中的 tryCatch() 指令而苦苦挣扎。我正在尝试获取股票代码的收盘价。

案例 2 = 好案例 = TickersJuly2 = 独特的价格与股票代码关系

案例 1 = 坏案例 = TickersJuly1 = FABU 收盘价是 CETX 的重复

案例 1 所需的输出对于 FABU 来说是 0。

library(TTR)
close.price1=NULL
TickersJuly1 <- c('DIT','CETX','FABU')
TickersJuly2<- c('AAPL','A','AA')

for(i in TickersJuly1){
           tryCatch(close <- getYahooData(i,20150727,20150727,'daily',"price"),
               error = function(e) close$Close <- 0,
               warning = function(w) close$Close <- 0,
               finally = function(f) close$Close <- 0)
      close.price <- c(as.character(close$Close),i)
      close.price1 <- rbind(close.price1,close.price)
}

【问题讨论】:

    标签: r try-catch


    【解决方案1】:

    我认为这行得通。您应该将tryCatch 的结果分配给一个变量。

    for(i in TickersJuly1){
        close <- tryCatch(
            getYahooData(i,20150727,20150727,'daily',"price"),
            error = function(e) list(Close=0),
            warning = function(w) list(Close=0),
            finally = function(f) list(Close=0))
        close.price <- c(as.character(close$Close),i)
        close.price1 <- rbind(close.price1,close.price)
    }
    

    【讨论】:

    • 在 tryCatch 分配 close
    • 当我运行它时,我得到 ` [,1] [,2] close.price "83.540001" "DIT" close.price "0" "FABU" close.price "2.91" "CETX" `
    猜你喜欢
    • 2015-06-01
    • 2018-10-02
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 2019-08-03
    • 2022-01-15
    • 1970-01-01
    相关资源
    最近更新 更多