r - 在 R 循环中使用 tryCatch

标签 r exception try-catch

我想读取价格并计算从雅虎获得的数据的返回,传递无法读取数据的符号。编码

library("TTR")
source("util.r")
symbols =
for (sym in c("CSI","XCSIX","IGI")) {
    cat("\nreading data for",sym,"\n")
    tryCatch(
    {
    stk = getYahooData(sym, start = 20000101, end = 20200101, freq = "daily")
    ndays = length(index(stk))
    logret = ((log(stk$Close) - lag(log(stk$Close)))) [2:ndays]
    print(summary(logret))},
    error = cat("could not read data for ",sym))
}

不起作用,给出输出
reading data for CSI 
could not read data for  CSI     Index                         Close           
 Min.   :2000-01-04 00:00:00   Min.   :-0.1640284  
 1st Qu.:2003-10-27 06:00:00   1st Qu.:-0.0028756  
 Median :2007-08-16 12:00:00   Median : 0.0000000  
 Mean   :2007-08-16 05:37:08   Mean   : 0.0003147  
 3rd Qu.:2011-06-05 06:00:00   3rd Qu.: 0.0037004  
 Max.   :2015-03-26 00:00:00   Max.   : 0.2523210  

reading data for XCSIX 
could not read data for  XCSIXError in tryCatchOne(expr, names, parentenv, handlers[[1L]]) : 
  attempt to apply non-function
Calls: tryCatch -> tryCatchList -> tryCatchOne
In addition: Warning message:
In file(file, "rt") : cannot open: HTTP status was '404 Not Found'
Execution halted

如何正确使用 tryCatch?

最佳答案

# This may work    
library("TTR")
    source("util.r")
    symbols =
      for (sym in c("CSI","XCSIX","IGI")) {
        cat("\nreading data for",sym,"\n")
        tryCatch(
          {
            stk = getYahooData(sym, start = 20000101, end = 20200101, freq = "daily")
            ndays = length(index(stk))
            logret = ((log(stk$Close) - lag(log(stk$Close)))) [2:ndays]
            print(summary(logret))},
          error=function(err) {
            cat("Data doesn't exist for company:", sym, "and the error is", conditionMessage(err), "\n")
      })
      }

关于r - 在 R 循环中使用 tryCatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29304940/

相关文章:

java - Android Espresso UI 测试 - 测试运行失败 : Instrumentation run failed due to 'java.lang.IllegalAccessError'

c# - Linq to Entities/Entity Framework 删除异常

r - 保留旧的(3.1.0 之前)type.convert 行为

r - 如何下载geojson数据并将其读取到R

向量上的 R 重复数学方程式

r - 用一些数据帧 r 绘制不同的图

asp.net - ASP.NET 如何在其通用错误处理程序中获取行号

r - 有条件地显示通过 withCallingHandlers 捕获的警告消息

javascript - 在 Node.js 中处理 fatal error 的正确方法

python - 使用 google DFP API python 客户端时出现奇怪的问题