I am trying to change the format of column Gross, which contains values like $50,319,942. I wish to make my program treat this variable as numeric.
This is my code but it is not displaying the values of this column.
DATA movies;
INFILE "/folders/myfolders/GrossDays.txt" DLM='09'x MISSOVER FIRSTOBS=2 DSD;
INPUT Title :$100. Date :ANYDTDTE20. Gross Theaters Distributor $;
RUN;
PROC PRINT DATA=movies;
FORMAT Date DATE9.;
RUN;
PROC PRINT DATA = music;
FORMAT Date DATE. ;
FORMAT Gross 10. ;
RUN;
DATA movies;
SET movies;
TheaterAvg = (Gross/Theaters);
RUN;
PROC PRINT DATA = movies;
RUN;
You just need to add an informat when inputting gross. e.g.:
DATA movies; INFILE "/folders/myfolders/GrossDays.txt" DLM='09'x MISSOVER FIRSTOBS=2 DSD; INPUT Title :$100. Date :ANYDTDTE20. Gross dollar12. Theaters Distributor $; RUN;
Art, CEO, AnalystFinder.com
Make sure to include the : prefix so that it uses list mode input since the source file is delimited and not fixed columns.
INPUT Title :$100. Date :ANYDTDTE. Gross :dollar. Theaters Distributor :$20.;
You don't need widths on your INFORMATs when using list mode, SAS will ignore them.
But you do want to include the width in the $xx. informats since that way SAS can use the width the make a better guess at what length you want the character variables to use.
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.