data work.titaniccsv;
length pclass $1 survived $1
name $82 sex $8 age $2
sibsp $1 parch $1
ticket $20 fare $10
cabin $10 embarked $1
boat $5 body $4
home_dest $70;
infile '/home/ywliang960/Titanic/titanic3.csv' firstobs=2 dsd;
input pclass survived name $ sex $ age sibsp
parch ticket $ fare cabin $ embarked $
boat $ body home_dest $;
Age= round(age);
run;
I'm able to round off every decimals EXCEPT for numbers like 0.92, 0.72. Those numbers rounded off to 0 instead of 1. Any ideas to solve it?
You've specified Age as a character variable ($2) but are then trying to apply numeric functions to the variable. Read it in as a number instead and you should be fine.
You may may want to revise your length statement for all your numeric variables and remove the extra $ before the length.
Read in Age as a numeric variable and still use the round function like
data mydata;
input Name $ Age;
datalines;
Bill 12.4
Carlos 35.7
Monique 0.12
Peter 0.78
;
data roundedData;
set mydata;
IntAge = Round(Age);
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.