Контекст:
Я читаю (используя DATA STEP infile
) множество папок (около 80), в основном содержащих три категории *.txt
файлов (4 файла ASCII)обработайте их и затем иногда объединяйте (фактически объединяя, используя DATA STEP set
) эти наборы данных в два для каждой папки и затем по всем папкам.Иногда случается, что одна или две категории отсутствуют, и SAS
выдает ERROR message ("ERROR: Physical file does not exist")
, но все еще продолжается, и кажется, что все еще работает.SAS
, кажется, генерирует пустые наборы данных (без obs) и работает с ними.
Вопрос: В любом случае, я хочу избавиться от этих ERRORS
и проверить с помощью оператора %IF
, существует ли файл - который работает - и в противном случае пропустить шаг данных.Но я получаю новый источник ERRORS
, когда пытаюсь объединить эти несуществующие наборы данных, а также сортирую эти наборы данных по переменной, которой также не существует - ERROR
.Я думал о том, чтобы проверить, пустой ли набор данных и зависит ли это слияние и т. Д., Но я не уверен, что это лучшая идея.Любые рекомендации?Кроме того, SAS
уже занимает много времени для обработки всех данных.Из длительных POV это хорошая идея (проверить наличие файлов и т. Д.)?
Мое решение:
- перехватывает эти несуществующие файлы с помощью оператора
%IF
и %fileexist
- генерирует набор данных(автоматически имеет 1 наблюдение), которое содержит только переменную, которую я сортирую по
- удалить наблюдение
- следует
DATA STEP set
- удалить пустые наборы данных
Это немного зависит от того, сколько данных содержат файлы ASCII, но весь этот процесс занимает уже 1,5 минуты, и мне придется добавить еще немного данных.DATA STEP infile
такой медленный?