I have a target variable which is called profit and which has values in +ve or -ve. I want to convert this into binary such that ive profit is 0 and +ve profit is 1. So far i am unable to do this in SAS Enterprise Miner.
1 Answers
You can modify your data by connecting your input data to a SAS Code Node. Let's use sashelp.class
as an example, converting the variable sex
into a 1/0 binary variable.
Add the following nodes to your diagram:
[Data] ---> [SAS Code] ---> [Metadata] ---> [Rest of your diagram]
Select the SAS Code Node and go to the Code Editor. Click the ellipses (...) on the left side of the screen under the "Train" menu. Add the following code:
data &em_export_train.;
set &em_import_data.;
sex_binary = (sex = 'M');
run;
&em_export_train
and &em_import_data
are special macro variables that are shown to you above in the "Macro" menu. All data is treated as training data until it is partitioned. &em_import_data
resolves to the data coming in to the node, &em_export_train
resolves to the data going out of the node.
Now that we've modified our data, we need to modify the metadata to tell Enterprise Miner to ignore the original variable and use our binary variable instead. Click the Metadata node and select the Train ellipses (...) under the "Variables" section on the left side of the screen. Modify your metadata as follows:
Sex: New Role --> Rejected
sex_binary: New Role --> Target
sex_binary: New Level --> Binary
sex_binary
is now your target variable that you can use for predictive modeling.
Note that you can avoid all of this if you modify your data before bringing it in. The method described here effectively treats both a SAS Code Node and a Metadata Node as the new Data Node. This might be necessary if you're working with an immutable database, for example. Enterprise Miner can run all SAS code as well as R code, so you have multiple ways to ETL your data within it.