Переименование столбцов в SAS путем удаления имен перед

#sas

Вопрос:

Я совсем новичок в SAS, и у меня была таблица с именами таблиц как таковыми:

 ID shoe.description shoe.color shoe.size shoe.reviews shoe.price store URL
 

Я планирую создать функцию для переименования переменных без обуви во что-то вроде

 ID description color size reviews price store URL
 

Могу ли я знать, как я мог бы это сделать?

Комментарии:

1. Вы спрашиваете об именах переменных или именах наборов данных? Обычные правила именования SAS не позволяют именам включать точки. Вы уверены, что ваши имена переменных включают эти периоды? Что вывод СОДЕРЖИМОГО PROC, выполняемого в вашем наборе данных, отображается в виде имен переменных?

2. Я ссылаюсь на имена наборов данных. Я стараюсь избегать использования «обуви». описание вот почему я задаюсь вопросом, как я мог бы удалить «обувь» из названий столбцов.

Ответ №1:

Вы можете использовать список имен переменных, чтобы помочь вам сгенерировать инструкцию ПЕРЕИМЕНОВАНИЯ.

Сначала введите список переменных в набор данных. Например, с помощью СОДЕРЖИМОГО PROC.

 proc contents data=have noprint out=contents; run;
 

Если количество переменных не является неоправданно большим, вы можете просто сгенерировать макропеременную со списком старых=новых пар.

 proc sql noprint;
%let renames=;
  select catx('=',nliteral(name),nliteral(substr(name,6)))
    into :renames separated by ' '
  from contents
  where lowcase(substr(name,1,5))='shoe.'
  ;
quit;
 

Затем используйте этот список в инструкции ПЕРЕИМЕНОВАНИЯ. Либо при создании нового набора данных.

 data want;
  set have;
  rename amp;renames;
run;
 

или с помощью наборов данных PROC для изменения имен в существующем наборе данных.