How do you convert a character variable to numeric in SAS?

In SAS, a character variable can be converted to a numeric variable by using the INPUT function. This function takes the character variable as an argument and assigns it a numeric value based on the informat specified. For example, if the informat is 8.2, then the character variable will be assigned a two-decimal numeric value. Additionally, the PUT function can be used to reverse the conversion from numeric to character.


You can use the input() function in SAS to convert a character variable to a numeric variable.

This function uses the following basic syntax:

numeric_var = input(character_var, comma9.);

The following example shows how to use this function in practice.

Related:

Example: Convert Character Variable to Numeric in SAS

Suppose we have the following dataset in SAS that shows the total sales made by some store during 10 consecutive days:

/*create dataset*/
data original_data;
    input day $ sales;
    datalines;
1 7
2 12
3 15
4 14
5 13
6 11
7 10
8 16
9 18
10 24
;
run;

/*view dataset*/
proc print data=original_data;

We can use proc contents to view the data type of each variable in the dataset:

/*display data type for each variable*/
proc contents data=original_data;

We can see that day is a character variable and sales is a numeric variable.

We can use the following code to create a new dataset in which we convert the day variable from character to numeric:

/*create new dataset where 'day' is numeric*/
data new_data;
    set original_data;
    numeric_day = input(day, comma9.);
    drop day;
run;

/*view new dataset*/
proc print data=new_data; 

Note: We used the drop function to drop the original day variable from the dataset.

/*display data type for each variable in new dataset*/
proc contents data=new_data;

We can see that the new variable we created, numeric_day, is a numeric variable.

The following tutorials explain how to perform other common tasks in SAS:

x