I've seen code in programs where I work where people create a character variable from another character variable using the put function. What's the point?
For example:
I know here that they are trying to add 50 to the positions 12:13 inside the character variable hrlongid.
length serial $2;
length newsn 8;
serial=put(substr(hrlongid,12,2),$2.);
newsn=serial+50;
substr(hrlongid,12,2)=newsn;
Wouldn't the last statement have to replace positions 12:13 with another character variable?
Why can't serial just be substr(hrlongid,12,2)?
seems abundant to me. if they don't have length statement: "length serial $2;", then there is a difference:
with just substr(), the new variable will inherit the same length as the source variable, with put(substr(), $2.) structure, the new var will get the length defined in the informat.
Haikuo
While that may not be the most useful version of Putting a character variable consider:
You have code such as a stock ticker symbol: XYZ and you are combining it with boiler plate text and other variable to create a sentence like:
XYZ had an earnings (increase/decrease) of (value) dollars of the past (interval text).
XYZ could be Put using a custom format for this sentence to read
Alpha Beta Manufacturing, Inc. had ...
Also with a different format the same symbol could use a shorter version such as Alpha Beta, or a much longer piece of text. Not to mention yet another format that would place it into a category:
This placed <company name> among the <top/bottom> 3 companies in <industry type>.
Sometimes the answer turns out to be, "They didn't know any better."
It would make a little sense if they used INPUT instead of PUT (and 2. instead of $2.). That would eliminate messages about character to numeric conversion on the log when computing newsn.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.