i am having a huge dataset with 200gb and having 100 variable ,now i want to drop 1 variable unused_trans,
i can do by this way
data tran_data(drop=unused_trans);
set tran_data;
run;
is there any other way to drop the variable by using proc datasets or proc sql with out recreating the dataset
It looks like you can't do it without recreating a new table ,even SQL.
But If you like view you can create a view for that which is most fast and most saving disk space method.
I don;t think there is any other way accept creating a view.
It would be slightly faster to do it this way:
data tran_data;
set tran_data (drop=unused_trans);
run;
As already said, SAS offers no support of modifying table structure in place.
If this is a rare operation, I can't see any problem by recreating the table.
if you often need to add/drop columns, and performance is an issue, you might want to look for other storage options.
If you are eager to save disk space, you may want to look at compression (SAS or host based).
If you just want to hide some obsolete columns for your users, using views, information maps or metadata rights could be an alternative.
How does it get in the data in the first place? Just about any approach should allow a (drop=variable) from the output when creating the SAS dataset. it from the datastep would be a better approach as you're going to need rought 400gb of disk to process.
Where is your data stored?
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.