Описание тега sas-macro

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

Создать таблицу с циклом в SAS

Когда у вас есть стол, как; somefield1 somefield2 lastterm1 lastterm2(10) (20) (1) (-)(20) (40) (1) (2)(30) (50) (-) (2) и попробуйте сгруппировать для каждого термина, есть ли более простой способ сделать это, чем; PROC SQL; CREATE TABLE WORK.LAST_…
09 ноя '16 в 13:06
1 ответ

Модификатор двоеточия в макросе

Я пытаюсь использовать функциональность модификатора двоеточия в макросе, но, похоже, он работает не так, как на шаге данных. Пример того, что я пытаюсь сделать, показан ниже. data _null_; str = "hello"; if str =: "h" then put "y"; else put "n"; run…
19 май '17 в 19:21
2 ответа

Динамический доступ к макро-переменным SAS

Я использовал call symputx для создания списка макропеременных с Item 1 по Item N, и теперь я хочу перенести их в массив в другом шаге данных, чтобы точка 1 в массиве получала Item1, точка 2 получала Item2 и т. Д. do j=1 to &num_OR; rulesUsed{j}…
18 июн '18 в 17:24
1 ответ

Измененное значение байта решило эту проблему, но почему? SAS: этот диапазон повторяется или значения перекрываются

Мой отдел BI только что столкнулся с ошибкой SAS: этот диапазон повторяется или значения перекрываются. Я нашел несколько ссылок, на которые они смотрели, и обнаружил, что в макросе произошла ошибка. Ошибка состояла в том, что длина байтового значен…
13 май '15 в 11:37
1 ответ

Как создать собственный набор данных sas

proc sql; select * INTO: SAGIA From Sasoprsk.Cust_field_value, Sasoprsk.Cust_obj_7 Where Cust_field_value.BUSINESS_OBJECT_RK eq Cust_obj_7.CUST_OBJ_7_ID; run; data Work.Temp = &SAGIA; run; Я хочу создать пользовательский набор данных, в котором …
07 ноя '17 в 06:49
1 ответ

Извлечение значений из макро-переменной SAS

Я определил макропеременную %let data_names = fuzzy_Data_segment EMWS2.Clus_TRAIN; Затем я написал макрос для извлечения и печати значений из вышеуказанной макропеременной как: %macro calling_data; %do i = 1 %to 2; %let data_name&i = %qscan(&amp…
14 июн '16 в 13:56
2 ответа

SAS EG Export Excel с пропуском

Как я могу защитить мой файл Excel с помощью пароля, потому что в SAS EG не поддерживается DDE. Я использую это, но у меня нет convert.vbsТак где я могу получить это? /***********************************************/ /* Create a test worksheet to pa…
20 дек '18 в 11:05
3 ответа

Макрос, возвращающий значение

Я создал следующий макрос. Proc power возвращает таблицу pw_cout содержащий столбец Power, data _null_ шаг назначает значение в столбце Power из pw_out к макропеременной tpw, Я хочу, чтобы макрос возвращал значение tpw, так что в основной программе …
13 сен '11 в 13:03
2 ответа

Попытка создать макрос, который проверяет существование макропеременной и создает ее, если она не существует

%Macro symexistchk(valuex); %if %symexist(&valuex) %then %put &valuex; %else %do; %let valuex = 0; %end; %Mend symexistchk; %symexistchk(g900_r); Я хочу проверить, существует ли макропеременная g900_r, и создать ее, если она не существует. С…
30 янв '15 в 21:06
1 ответ

Как импортировать 100 CSV-файлов из каждой из 1000 папок

У меня есть 1000 папок в каталоге с именем folder1, folder10, folder 25, .......folder10200. Каждая из этих 1000 папок содержит 100 CSV-файлов с именами file1, file2,..... file100 Задача, которую мне нужно выполнить, - это создать один набор данных …
26 дек '14 в 08:39
1 ответ

SAS - как остановить открытие вкладки результатов в sas с помощью кода.

У меня есть следующий код: ods _all_ close; ods csv file="filename.csv" %macro mac_name (st, en=); %do j=1 %to &en.; %let k=%eval(&j.+1); proc freq data=data_name; tables status&j. * status&k. / nocol norow nopercent missing; run; %e…
06 сен '17 в 14:12
3 ответа

Переменная SAS Macro с запятыми для преобразования в одинарные кавычки с запятыми

Может ли кто-нибудь помочь мне, как я могу получить макрос-переменную с одинарными кавычками. Я получаю числа в виде значений, разделенных запятыми, из набора данных, как показано ниже: 2108008080, 2108008081, 2108888082, 2108858090, 213856345 и т. …
03 дек '15 в 05:56
1 ответ

SAS: повысить эффективность массива с помощью макросов

Сейчас я пытаюсь попрактиковаться в макросах SAS, и хотя они кажутся по большей части логичными, в документации я нашел мало информации о том, как повысить эффективность массива с помощью макросов. Есть ли другой способ, и я делаю все это неправильн…
05 фев '19 в 01:51
3 ответа

В SAS, вне шага данных, каков наилучший способ заменить символ в макропеременной пробелом?

В SAS, вне шага данных, каков наилучший способ заменить символ в макропеременной пробелом? Кажется, что TRANSLATE было бы хорошей функцией для использования. Однако при использовании %SYSFUNC с помощью этой функции параметры не заключаются в кавычки…
06 фев '09 в 17:17
2 ответа

Как я могу выполнить итеративную программу макросов с последовательными постоянными числами в sas?

Я новичок в макросе. Я модифицировал макропрограмму и работает. Но я должен написать следующий макрос сто раз следующим образом. %quint(dsn=cc1, var=MB, quintvar=MB5, num=111) ; %quint(dsn=cc1, var=MB, quintvar=MB5, num=112) ; %quint(dsn=cc1, var=MB…
04 ноя '14 в 14:49
1 ответ

SAS: определение переменных в цикле if

Я новичок в написании макросов SAS, и я изо всех сил пытался написать код для следующего экземпляра. %let DateOfInterest= "15jul2016"d; %let yearyyyy=%sysfunc(putn(&DateOfInterest,year4.)); %let yearyyyy2=eval(yearyyyy+1); data _null_; if "01JAN…
03 май '17 в 14:40
2 ответа

SAS libref не распознается в цикле макросов

Я столкнулся со странной причудой SAS, которую не могу понять - надеюсь, вы поможете. У меня есть простой макро-цикл, который импортирует файлы CSV, и по какой-то причине, если я использую инструкцию libref в части процедуры импорта out= out, SAS не…
04 июл '15 в 16:40
4 ответа

Список специальных символов в макросах SAS

Я хотел бы знать, какие символы безопасны для любого использования в SAS макросы. Так что я подразумеваю здесь под специальными символами любой символ (или группу символов), который может играть определенную роль в SAS в любом контексте. Меня не инт…
12 апр '18 в 13:48
1 ответ

Массивы в макросах в SAS

%macro test ; %array factors(7) &ordered_col ; %array names(7) &ordered_col2 ; %do i = 1 %to 7 ; %let factorname = factors(&i) ; %let output = names(&i) ; proc sort data=actshare.policy out=&output nodupkey ; by &factorname ;…
26 апр '17 в 11:59
1 ответ

В SAS, как мне назначить макропеременную для номера текущей недели?

Я назначаю макропеременную следующим образом: %let days2=31; но вместо 31 я хочу, чтобы переменная автоматически была текущим номером недели. Я пытался использовать week2=week(today(), 'u'), но это возвращает ошибку. Есть идеи? Заранее спасибо!!
22 авг '17 в 08:37