LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (November 1999, week 1)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Thu, 4 Nov 1999 14:40:47 -0700
Reply-To:     Jack Hamilton <JackHamilton@FIRSTHEALTH.COM>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         Jack Hamilton <JackHamilton@FIRSTHEALTH.COM>
Subject:      Comments on the SASWare Ballot
Content-Type: text/plain; charset=us-ascii

As is my custom, I would like to lobby for and against some items on the SASware ballot.

Overall, the ballot looks good. There are many fewer unnecessary items (requests for things which could already be done easily) than in the past, and it's almost always possible to figure out what the items mean.

1 provide a system option to control the number of decimal places printed for any output

I'm not sure that this will be needed with the new Output Delivery System, which is supposed to provide a much greater level of control over output than could be achieved in V6.

3 add an FTP access method option in the FILENAME statement like the TERMSTR= option that the SOCKET access method has in order to specify what character to use as the end of line

I had asked for a superset of this, which is the ability to specify TERMSTR= for any access method (plain old disk files in particular). I would find this feature for files very useful,and I suspect that it would be useful for anyone who uses multiple operating systems or reads data from the outside world.

Basically, what it's asking for is the ability to tell SAS what the line- termination characters are. Sometimes we get files whose lines end with CR, sometimes with LF, and sometimes with CRLF. It's surprisingly difficult to coonvert files to the correct format to be read by SAS.

Please vote for this, in the hope that SAS Institute (SI) will provide the option for all access methods, not just FTP and SOCKET.

5 provide the ability to set different linesize and pagesize values for the SAS Log and SAS listing files

Well yes, of course. This would be very convenient.

6 add the ability to independently center, right justify, and/or left justify a TITLE and a FOOTNOTE statement

SAS?Graph has this ability, and it really surprises me that SI hasn't already added it to the base product.

*** DATA Step ***

10 provide the ability to use the special list variables _NUMERIC_ and _CHARACTER_ in the PUT statement

There are times when this would be convenient, but I'm not sure that it deserves using up a vote. The ability to get the variable names in alpha order would be more important to me.

13 add an option that will allow you to specify the order of the variables (i.e., ORDER=var1 var2 var3)

We've had numerous discussions of this on SAS-L. The conclusion was, in my opinion, that there's rarely any *need* for this, but it would often be convenient, and there's no good general workaround that doesn't involve re-processing the data. So vote for this one.

*** Functions ***

16 allow the MIN, MAX, USS, CSS, RANGE, and ORDINAL functions to accept a single argument

You might think "Why would anyone want to do this?". Because it's much easier to write macros if you don't have to process single arguments as a special case.

*** WHERE Statement ***

24 provide the ability to display the WHERE clause in printed output

This would be helpful for quick-and-dirty report writing. I suppose it would be be achieved through a special value in the TITLE statement, similar to the manner in which you can now put BY values into a title.

*** Display Manager System(including text editor) ***

25 add a warning dialog to prompt whether to replace, append, or cancel every time the FILE==>SAVE menu item is chosen to save a file in the Program Editor

This would be an option, I hope. I wouldn't necessarily want to be prompted every time.

PART II Base SAS Procedures

*** All Procedures ***

31 provide the ability to use -L, -C, and -R with formats in a FORMAT statement to left- align, center, and right-align

Yes, this would be helpful.

32 provide an option to produce a header line when the input data set contains no observations

Something else that's requested all the time. I will provide some workarounds in a SUGI posters paper if my submission is accepted.


35 provide the ability to select specific data sets or catalogs from a transport file when importing

This has been kicking around for a long time, and I'm surprised it hasn't been implemented yet.


40 enhance the FMTLIB option so that information on all format libraries listed in the FMTSEARCH= option will be printed

It's possible to get this information now, but it would take some tricky programming, so this would be useful for installations which provide local format libraries. I'm assuming that they really meant "information on all formats available through the FMTSEARCH= list", which is not the same as what they said.

41 provide JUST and UPCASE functionality for the VALUE statement

Yes, please, please, please vote for this one! This would be *very* helpful for processing the dirty data we sometimes have to process. These options are already available for informats, so this would be breaking new ground.

42 provide a front end to simplify creation and editing of user-written formats

I don't care about the creation and editing, but this might also provide a way to *view* formats in interactive SAS, and that would be very welcome.

*** PROC FREQ ***

43 add an option in the TABLES statement to output the number of unique values for a variable

This would be helpful.

*** PROC PRINT ***

45 provide an option to force a page eject if all observations in the current BY group will not fit on the remainder of the page

Yes, and also in PROC REPORT.


49 provide the ability to suppress summary lines when there is only one observation for a group

Yes, would make some reports look better.

50 add the ability to dynamically align text from LINE statements with report columns

Yes, I've given up on using PROC REPORT for some things because of the inability to do this.

51 provide the ability to group by computed columns


52 provide the ability to print the word 'CONTINUED' when a report spans pages and to print 'END' on the last page

Would make reports look more professional.

*** PROC SORT ***

54 add an option to output observations deleted by the NODUP or NODUPKEY option to an alternate data set

Not really needed, since NODUP doesn't always work right anyway (in V6), and if you use the foolproof sort+data step solution, outputting the dups is trivial.

*** PROC SQL ***

55 allow the automatic conversion of variables from character to numeric when performing arithmetic expressions in a query

No. This would be an bad idea. If something like this must be added, it should be an option which is not the default.

56 provide the ability to do index-only reads to enhance performance when doing something like SELECT DISTINCT X (where x is a column of a very large table)

This would be a good idea, but it might be in the works already. Many other databases are already smart enough to do this.

59 add SORTEDBY information to DICTIONARY.TABLES

This can't be implemented, because it's not possible in the general case. A vote for this might be taken as a vote for creating something like DICTIONARY.SORTEDBY, or a new column in DICTIONARY.COLUMNS.

61 provide character versions of the MIN and MAX functions

This would be reasonable. The MIN and MAX functions in data steps should also take character arguments.

63 use the header information contained in a SAS data set for the COUNT(*) function when no subset criteria is given

I suspect that a vote for this is unneeded if you vote for #56.

64 create a pseudo-column that returns a number indicating the sequence in which a row was selected from a table or set of joined tables

This is frequently requested, but not, I think, by people who know SQL.

67 add the ROLLUP, CUBE, and GROUPING SETS extensions

These extensions allow SQL to create summary groups similar to those created by PROC SUMMARY in V6, but with more control. IIRC, PROC SUMMARY in V8 will provide most of this capability, but not as part of SQL.

From <>: You specify ROLLUP and CUBE operations in the GROUP BY clause of a query. ROLLUP grouping produces a result set containing the regular grouped rows and sub-total rows. CUBE grouping produces a result set containing the rows from ROLLUP and cross-tabulation rows. So for ROLLUP, you can get the sales by person by month with monthly sales totals and an overall total. For CUBE, additional rows would be included for total sales by person.

If you use SQL regularly, vote for this one. Trust me.

PART III SAS Macro Facility

71 add line numbers to MPRINT output, so line numbers are continuous in the SAS Log

That would be very helpful for debugging, as anyone who has tried to debug a macro program knows.

72 provide the ability to delete macro variables

This is often requested, but I'm not sure why it would be needed.

74 allow the IN operator to be used in a macro

Yes, but I'd ask for more - not only IN, but also SELECT.

Ideally, we'd get an entirely new macro language, but I'm not holding my breath.

76 provide an automatic macro variable to return the number of the current batch job

This item is misplaced - it should be under MVS.

PART IX SAS Component Language

136 enhance the FINFO function to return additional information such as file size and modification date/time

I want this, but in the data step.

PART XVIII Data File Management

*** General ***

244 produce a NOTE in the SAS Log on all platforms when submitting a FILENAME _ALL_ LIST statement that lists the FILEREF(s) and physical name(s) of any FILENAME assigned, or a NOTE if there are not any

You can get this information from DICTIONARY.EXTFILES, so I wouldn't vote for this if I thought it would take programmer time away from prompt whether to replace, append, adding new capabilities.

System Specifics

*** SAS System under MVS ***

264 provide source control management system capability

More generally, I would say "provide hooks to external source code control systems under all operating systems." I'm not sure that most sites would want to run one SCCS from SI for SAS programs, and another SCCS for everything else.

265 provide a check to see if a file is already allocated to a libref before allowing a FILENAME statement, FILE command or anything else to reference it as an external flat file

Should be an option, since you might want to open a dataset in multiple ways.

Can't you already check to see if a file is allocated as a libref by looking in DICTIONARY.MEMBERS?

PART XXX SAS System for Personal Computers

*** General ***

281 allow the -emailsys, -emaildlg, -emailid, and -emailpw options to be set during run time

Yes. It particular, requiring that the password be set at invocation leads to bad security practices.

-- Development Manager, Technical Group METRICS Department, First Health West Sacramento, California USA

Back to: Top of message | Previous page | Main SAS-L page