I am attempting to get rid of a NOTE in the log file. (v9.4, Windows)
I run the following code:
data _temp;
a=1; output;
run;
data _temp2;
set _temp;
b = input(a, best12.);
run;
In the log, there is this NOTE:
NOTE: Numeric values have been converted to character values at the places given by:
Both variables a and b are numeric, and best12. is numeric informat. Why is the input function converting numeric values to character values?
Is there another function I should use to get rid of the NOTE in the log?
Because input() is designed to input from strings, the numeric value in a must first be converted to character, so it can be read with the best12. informat.
INPUT() function is used to convert character to numeric. In your example INPUT(a,best12.) --> Here 'a' must be given character values. Since you gave numeric value it converted to character and again ti numeric.
What are you trying to do?
I am trying to use informats for data validation.
For example, the external data is expected to have three values 0, 1, and 99 to indicate unknown. I want to return a variable with just 0 and 1, convert the 99 to missing and throw an error when other values are encountered.
data _externalData;
a=1; output;
a=0; output;
a=77; output;
a=99; output;
run;
proc format;
invalue test
0-1 = _same_
99 = .
other = _error_
;
run;
data _myData;
set _externalData;
b = input(a, test.);
run;
The results are what I desire, I just want to get rid of the (seemingly) unnecessary NOTE in the log. Should I be using another function besides input?
data _externalData;
a=1; output;
a=0; output;
a=77; output;
a=99; output;
run;
proc format;
value tet
0 = 0
1 = 1
99 = .
other ="_error_"
;
run;
data _myData;
set _externalData;
b = put(a, test.);
run;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.