BookmarkSubscribeRSS Feed
ywliang960
Calcite | Level 5

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?


Capture.PNG
2 REPLIES 2
Reeza
Super User

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. 

PeterClemmensen
Tourmaline | Level 20

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;

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

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 lock in 2025 pricing—just $495!

Register now

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1265 views
  • 1 like
  • 3 in conversation