Как только переменная определена, вы не можете изменить ее с одного типа на другой, не создавая новую переменную. Вам нужно будет определить, где он должен быть в таблице, прежде чем делать это. Быстрый способ - использовать оператор retain
перед оператором set
, чтобы определить порядок уже существующих переменных, не беспокоясь о том, какого они типа.
data cars;
retain make model type origin drivetrain _cylinders;
length cylinders $15.;
set sashelp.cars(rename=(cylinders = _cylinders));
if _cylinders >= 6 then cylinders = 'Big';
if _cylinders < 6 then cylinders = 'Ecocar';
drop _cylinders;
run;
Другой способ - сначала создать фиктивную переменную. таблица, которая выглядит именно так, как вы хотите, и имеет все переменные атрибуты, которые вам нужны. Заполните его только одной пустой строкой, чтобы потом было легче переставить. Давайте назовем это cars_attribs
. Например:
Type C C C C C C N N N ...
Column make model type origin drivetrain cylinders msrp invoice enginesize ...
Row . . . ...
Используйте эту таблицу в выражении set
с obs=0
, чтобы всегда держать ваши любимые переменные позиции.
data cars;
set cars_attribs(obs=0)
sashelp.cars(rename=(cylinders = _cylinders));
;
if _cylinders >= 6 then cylinders = 'Big';
if _cylinders < 6 then cylinders = 'Ecocar';
drop _cylinders;
run;
Если вы когда-нибудь захотите изменить переменные позиции просто переставьте cars_attribs
в Enterprise Guide, перетаскивая столбцы.