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;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
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.
Ready to level-up your skills? Choose your own adventure.