DATA Step, Macro, Functions and more

convert dataset size bytes into MB

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 7
Accepted Solution

convert dataset size bytes into MB

proc sql;

create table size as

select*from dictionary.tables

where libname="SASHELP";

quit;

proc format;

picture dd low - high="999999MB";

run;

data data;

set size;

size=filesize*(1024*1024);

keep memname filesize size;

format size dd.;

run;

check out the above program....is it right ?

if it is right ...i am not getting accurate result.....

please help by modifying the program.....give the best suggetions....

thank you inadvance.


Accepted Solutions
Solution
‎03-24-2018 02:28 AM
Super User
Posts: 10,616

Re: convert dataset size bytes into MB

Change to this:

size = filesize / 1024 / 1024;

Filesize contains the number of bytes. Dividing by 1024 gives you KB, dividing again gives you MB.

One more divsion would give you GB.

You could even use a multiplicator in the format and assign the format directly to filesize.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code

View solution in original post


All Replies
Solution
‎03-24-2018 02:28 AM
Super User
Posts: 10,616

Re: convert dataset size bytes into MB

Change to this:

size = filesize / 1024 / 1024;

Filesize contains the number of bytes. Dividing by 1024 gives you KB, dividing again gives you MB.

One more divsion would give you GB.

You could even use a multiplicator in the format and assign the format directly to filesize.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code
Valued Guide
Posts: 631

Re: convert dataset size bytes into MB

Some things helping us to help you:

  • use {i} or running-man icon to post formatted code, this increases readability
  • explain the expected result

The SAS environment i have access to prints the following error message:

40         
41         data data;
                ____
                57
ERROR 57-185: DATA is not allowed in the DATA statement when option DATASTMTCHK=ALLKEYWORDS.  Check for a missing semicolon in the 
              DATA statement, or use DATASTMTCHK=NONE.

After renaming the dataset the numbers seem to be to high. Maybe using the standard format sizekmgw.d is what you need.

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 178 views
  • 0 likes
  • 3 in conversation