Мне нужно создать запись нижнего колонтитула, которая отображает точки с запятой, которые равны количеству столбцов в таблице. Таблица содержит 47 столбцов, но это может измениться, поэтому мне нужно динамически подсчитывать столбцы без использования таблиц словарей. Запись нижнего колонтитула будет экспортирована в файл csv, а разделитель - точкой с запятой.Динамически подсчитывать количество столбцов в таблице SAS
Я пробовал этот код ниже, он работает, но при экспорте данных в файл csv точки с запятой заключаются в двойные кавычки, даже если я использовал функцию dequote. Любая идея удалить их? Заранее спасибо.
proc contents data=input out=output noprint; run;
proc sort data=output; by varnum; run;
data _null_;
set output;
call symputx("maximum",varnum);
run;
data semis;
length ffsemis $47;
ffsemis = repeat(';',&maximum*1);
* call symputx("semis",ffsemis);
run;
data _null_;
file "E:\semis.csv" delimiter=';' dsd dropover;
set work.semis;
if _n_=1 then do;
put ffsemis;
end;
run;
В настоящий момент ваша логика основана на количестве переменных в наборе данных, а не на количестве строк. Вы уверены, что хотите, точки с запятой = строки? – user667489
Извините за путаницу, я имел в виду подсчет столбцов или переменных в наборе данных. Да, это требование запроса на изменение. –
Требование к запросу на изменение равно числу точек с запятой, равным количеству столбцов. 47 columns = ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; –