I have the following code. I basically want to filter a table so that you are left with only the information relevant for the car colors in the table want_options. In dataset have_options, the car colors are listed in 3 different rows in column_a (i.e. blue on top of red on top of white). In the first data step, i have created want_options which combines these 3 rows into 1 row in column_b (new column), so it now appears as "blue", "red", "white" in 1 cell next to eachother. In the last data step, I want to filter dataset have_data by the selected colors from want_options (in this case blue, red, and white were chosen). However, when I run the last data step, it highlights the comma in the line "blue", "red", "white" from the macro variable &car_color_options. and says both: ERROR 388-185: Expecting an arithmetic operator. ERROR 200-322: The symbol is not recognized and will be ignored. Data want_options;
Set have_options; By car_brand;
If first.car_brand then column_b = cats('"', column_a, '"');
Else column_b = (column_b, ' ,', '"', column_a, '"');
/* '"" is basically ' " ' in case you can't tell */
Run;
%Let car_color = "";
Data _null_;
Set want_options;
If car_brand = "car_color" then call symput('car_color_options', column_b);
Run;
Data outcome;
Set have_data;
If &car_color_options. = "" then car_color_selected = 1;
Else &car_color_options. ^= "" and car_color in (&car_color_options.) then car_color_selected = 1;
Else &car_color_options. ^= "" and car_color not in (&car_color_options.) then car_color_selected = 0;
If car_color_selected = 1 then output;
Run; Anyone know how I can solve this? Thanks
... View more