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;
It's your turn to help shape SAS Innovate 2027. Share your expertise and inspire the SAS community.
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.