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;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.