Как пропустить предупреждения в цикле [wolfram-mathematica]
Моя цель - прочитать данные обо всех доступных акциях на NASDAQ, используя FinancialData[], и сделать некоторые вычисления на них. Проблема в том, что (я уже связался со службой поддержки из-за этого, и это известная проблема), что если я использую
Slist = FinancialData["NASDAQ:*", "Lookup"];
прочитать все доступные символы тикера, а затем
Dlist = FinancialData[#] & /@ Slist;
чтобы загрузить текущую цену на рынке, это не работает для всех записей из-за ошибок в базе данных, и Mathematica выдает несколько предупреждений в виде:
NASDAQ:AAMALX is not a known entity, class, or tag for FinancialData.
Use FinancialData[] for a list of entities.
Поскольку с этим ничего не поделаешь, я хотел бы сейчас найти способ читать только в рабочих записях и пропустить их с предупреждением. Хотя я уже провел некоторое исследование возможных функций, которые позволили бы это (например, в цикле for), я не смог найти решение.
Даже краткий намек на направление, на которое я должен смотреть, уже очень помог бы. Я использую Mathematica 10 на Mac.
1 ответ
Использование Quiet
чтобы подавить предупреждающие сообщения, затем выберите количество случаев.
Slist = FinancialData["NASDAQ:*", "Lookup"];
Dlist = Cases[Quiet[{#, FinancialData[#]} & /@ Slist], {_, _?NumberQ}]