@Phamhhm, it will be nice if you post how did you solve the issue.
Just add ¨Area¨
DATA PHAM.Blabla;
SET PHAM.Bla;
IF area = "ATLANTIC SOUTH AREA" THEN area = 1;
ELSE IF area = "CALIFORNIA NORTH AREA" THEN area = 2;
ELSE IF area = "CENTRAL/SOUTH TEXAS AREA" THEN area = 3;
ELSE IF area = "CHICAGO AREA" THEN area = 4;
ELSE IF area = "DALLAS AREA" THEN area = 5;
ELSE IF area = "DC/MARYLAND/VIRGINIA AREA" THEN area = 6;
ELSE IF area = "GREAT LAKES AREA" THEN area = 7;
ELSE IF area = "HOUSTON AREA" THEN area = 8;
ELSE IF area = "LOS ANGELES AREA" THEN area = 9;
ELSE IF area = "MIDWEST AREA" THEN area = 10;
ELSE IF area = "NEW ENGLAND AREA" THEN area = 11;
ELSE IF area = "NEW YORK CITY AREA" THEN area = 12;
ELSE IF area = "NORTH FLORIDA AREA" THEN area = 13;
ELSE IF area = "NORTHWEST/ROCKY MOUNTAIN AREA" THEN area = 14;
ELSE IF area = "OHIO AREA" THEN area = 15;
ELSE IF area = "PHILADELPHIA AREA" THEN area = 16;
ELSE IF area = "SOUTH FLORIDA AREA" THEN area = 17;
ELSE IF area = "SOUTHWEST AREA" THEN area = 18;
ELSE IF area = "TENNESSEE AREA" THEN area = 19;
ELSE area = .;
RUN;
@Phamhhm wrote:
Just add ¨Area¨
DATA PHAM.Blabla;
SET PHAM.Bla;
IF area = "ATLANTIC SOUTH AREA" THEN area = 1;
ELSE IF area = "CALIFORNIA NORTH AREA" THEN area = 2;
ELSE IF area = "CENTRAL/SOUTH TEXAS AREA" THEN area = 3;
ELSE IF area = "CHICAGO AREA" THEN area = 4;
ELSE IF area = "DALLAS AREA" THEN area = 5;
ELSE IF area = "DC/MARYLAND/VIRGINIA AREA" THEN area = 6;
ELSE IF area = "GREAT LAKES AREA" THEN area = 7;
ELSE IF area = "HOUSTON AREA" THEN area = 8;
ELSE IF area = "LOS ANGELES AREA" THEN area = 9;
ELSE IF area = "MIDWEST AREA" THEN area = 10;
ELSE IF area = "NEW ENGLAND AREA" THEN area = 11;
ELSE IF area = "NEW YORK CITY AREA" THEN area = 12;
ELSE IF area = "NORTH FLORIDA AREA" THEN area = 13;
ELSE IF area = "NORTHWEST/ROCKY MOUNTAIN AREA" THEN area = 14;
ELSE IF area = "OHIO AREA" THEN area = 15;
ELSE IF area = "PHILADELPHIA AREA" THEN area = 16;
ELSE IF area = "SOUTH FLORIDA AREA" THEN area = 17;
ELSE IF area = "SOUTHWEST AREA" THEN area = 18;
ELSE IF area = "TENNESSEE AREA" THEN area = 19;
ELSE area = .;
RUN;
So the problem was you wrote code comparing values of a variable that did not exist in your data if this works.
And now you will have notes about conversion to numeric
10 data example;
11 area = "ATLANTIC SOUTH AREA";
12 IF area = "ATLANTIC SOUTH AREA" THEN area = 1;
13 run;
NOTE: Numeric values have been converted to character values at the places given by:
(Line):(Column).
12:48
If the whole purpose of this exercise is to display those digits instead of the name text then a format would be my preferred solution as I could switch between the full text and the code value as desired:
data example; infile datalines dsd truncover; informat Area $30.; input area $; datalines; "ATLANTIC SOUTH AREA" "CALIFORNIA NORTH AREA" "CENTRAL/SOUTH TEXAS AREA" "CHICAGO AREA" "DALLAS AREA" "DC/MARYLAND/VIRGINIA AREA" "GREAT LAKES AREA" "HOUSTON AREA" "LOS ANGELES AREA" "MIDWEST AREA" "NEW ENGLAND AREA" "NEW YORK CITY AREA" "NORTH FLORIDA AREA" "NORTHWEST/ROCKY MOUNTAIN AREA" "OHIO AREA" "PHILADELPHIA AREA" "SOUTH FLORIDA AREA" "SOUTHWEST AREA" "TENNESSEE AREA" "Someplaceelse" ; run; proc format library=work; value $area "ATLANTIC SOUTH AREA" = '1' "CALIFORNIA NORTH AREA" = '2' "CENTRAL/SOUTH TEXAS AREA" = '3' "CHICAGO AREA" = '4' "DALLAS AREA" = '5' "DC/MARYLAND/VIRGINIA AREA" = '6' "GREAT LAKES AREA" = '7' "HOUSTON AREA" = '8' "LOS ANGELES AREA" = '9' "MIDWEST AREA" = '10' "NEW ENGLAND AREA" = '11' "NEW YORK CITY AREA" = '12' "NORTH FLORIDA AREA" = '13' "NORTHWEST/ROCKY MOUNTAIN AREA" = '14' "OHIO AREA" = '15' "PHILADELPHIA AREA" = '16' "SOUTH FLORIDA AREA" = '17' "SOUTHWEST AREA" = '18' "TENNESSEE AREA" = '19' other = ' ' /* place what ever text you want in the quotes*/ ; run; Proc print data=example; var area; format area $area.; run;
Formats become more powerful if you have the value and the codes in a data set as you can make a format from the data set.
So instead of adding lots more If/then/else statements to your data code you just change the definition of the format. Also note that the Proc format code more compact than If/then/else.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.