Как пропускать предупреждения в цикле [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.


person das_Urmel    schedule 01.03.2015    source источник


Ответы (1)


Используйте Quiet для подавления предупреждающих сообщений, затем выберите количество случаев.

Slist = FinancialData["NASDAQ:*", "Lookup"];
Dlist = Cases[Quiet[{#, FinancialData[#]} & /@ Slist], {_, _?NumberQ}]
person Chris Degnen    schedule 01.03.2015