Как написать пробную попытку для этого сценария в R

#r #try-catch

Вопрос:

В настоящее время я написал инструкцию ifelse, чтобы получить правильный шаблон символов. Но я хочу знать, как я могу написать tryCatch для этого заявления? Потому что иногда getSymbols возвращает ошибку, если символ не имеет правильного расширения.

 getSymbols(
  
  ifelse(
    substring(stocksList[i,1],1,1) == "^" | grepl(".BO", stocksList[i,1]),
    stocksList[i,1] , 
    paste0(stocksList[i,1], ".NS") 
  ),
  
  from = fromDate, 
  to = toDate,
  periodicity = freqStr ,
  return.class = 'zoo',
  env = NULL
)
 

Комментарии:

1. Является stocksList ли data.фреймом?

Ответ №1:

Вы пробовали завернуть полный код внутрь tryCatch ?

 tryCatch({
  getSymbols(ifelse(
    substring(stocksList[i,1],1,1) == "^" |   grepl(".BO", stocksList[i,1]),
    stocksList[i,1] , 
    paste0(stocksList[i,1] , ".NS") 
  ),
  from = fromDate, 
  to = toDate,
  periodicity = freqStr ,
  return.class = 'zoo',
  env = NULL)
  }, 
  error = function(e) message('Cannot download the data')
)
 

Комментарии:

1. Я хочу запустить другой фрагмент кода, если во время первого getsymbols возникнет ошибка

2. Не могли бы вы, пожалуйста, обновить свой пост, чтобы включить в него то, что вы хотите сделать? Я написал ответ на вопрос, который вы задали в своем главном посте.

3. Вы можете запустить фрагмент кода в error части tryCatch .