#file-upload #import #sas
#загрузка файла #импорт #sas
Вопрос:
Я новичок в среде SAS. Может быть, это глупый вопрос, но я не могу его понять.
LIBNAME CODY '/folders/myfolders/Cody';
data In_Both
Missing_Name(drop = Name);
merge purchase(in=In_Purch)
inventory(in=In_Invent);
by Model;
if In_Purch and In_Invent then output In_Both;
else if In_Invent and not In_Purch then output Missing_Name;
run;
Это ошибка, которую я получаю
1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
72
73 LIBNAME CODY '/folders/myfolders/Cody';
NOTE: Libref CODY was successfully assigned as follows:
Engine: V9
Physical Name: /folders/myfolders/Cody
74
75 data In_Both
76 Missing_Name(drop = Name);
77 merge purchase(in=In_Purch)
78 inventory(in=In_Invent);
ERROR: File WORK.PURCHASE.DATA does not exist.
ERROR: File WORK.INVENTORY.DATA does not exist.
79 by Model;
80 if In_Purch and In_Invent then output In_Both;
81 else if In_Invent and not In_Purch then output Missing_Name;
82 run;
Кажется, что SAS не может найти файлы, даже если они существуют.
Я использую SAS university Edition.
Код должен предоставить мне 2 набора данных, один с объединенным наблюдением, а другой с не объединенными наблюдениями.
Есть ли конкретный способ загрузить нужные мне наборы данных? Два набора данных представлены в формате sas7bdat
Спасибо всем за помощь!
Ответ №1:
Измените оператор merge в своем коде на
merge
CODY.purchase(in=In_Purch)
CODY.inventory(in=In_Invent)
;
Журнал сообщает вам, что этот шаг ищет таблицы в WORK
библиотеке, а не CODY
Давайте посмотрим на исходный код.
data In_Both Missing_Name(drop = Name);
merge
purchase(in=In_Purch)
inventory(in=In_Invent)
;
by Model;
if In_Purch and In_Invent then output In_Both;
else
if In_Invent and not In_Purch then output Missing_Name;
run;
Имена наборов данных purchase
и inventory
в merge
не включают a <libref>.
. Когда libref отсутствует, SAS по умолчанию WORK
использует папку.
Сообщения об ошибках в журнале четко указывают на проблему
ERROR: File WORK.PURCHASE.DATA does not exist.
ERROR: File WORK.INVENTORY.DATA does not exist.
Вы можете видеть, что шаг искал WORK.PURCHASE
WORK.INVENTORY
и не нашел их (потому что они есть в CODY
библиотеке)
Измените объединяемые наборы данных, чтобы включить соответствующую библиотеку, таким образом, вы хотите CODY.purchase
и CODY.inventory
Комментарии:
1. Как мне сказать SAS, чтобы он смотрел в папке Cody вместо работы? Извините, я не получил полного ответа
2. Измените имя набора данных с просто
PURCHASE
(что подразумеваетWORK.PURCHASE
) наCODY.PURCHASE
3. Спасибо, теперь я понял!