work on missing value handling
[pspp] / doc / utilities.texi
index 7128545c1408eceaae874d7112b8fd891d945b33..8dce637cc89a92b30cc267cedeb47b94d48df48b 100644 (file)
@@ -1,5 +1,5 @@
 @c PSPP - a program for statistical analysis.
-@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Copyright (C) 2017, 2020 Free Software Foundation, Inc.
 @c Permission is granted to copy, distribute and/or modify this document
 @c under the terms of the GNU Free Documentation License, Version 1.3
 @c or any later version published by the Free Software Foundation;
@@ -82,7 +82,8 @@ This command is accepted, for compatibility, but it has no effect.
 CD 'new directory' .
 @end display
 
-@cmd{CD} changes the current directory.  The new directory will become that specified by the command.
+@cmd{CD} changes the current directory.  The new directory becomes
+that specified by the command.
 
 @node COMMENT
 @section COMMENT
@@ -126,7 +127,7 @@ DOCUMENTS}.
 
 Specify the @var{documentary text} following the @subcmd{DOCUMENT} keyword.
 It is interpreted literally---any quotes or other punctuation marks
-will be included in the file.
+are included in the file.
 You can extend the documentary text over as many lines as necessary,
 including blank lines to separate paragraphs.
 Lines are truncated at 80 bytes.  Don't forget to terminate
@@ -215,7 +216,7 @@ FILE LABEL @var{file_label}.
 @end display
 
 @cmd{FILE LABEL} provides a title for the active dataset.  This
-title will be saved into system files and portable files that are
+title is saved into system files and portable files that are
 created during this @pspp{} run.
 
 @var{file_label} should not be quoted.
@@ -293,8 +294,8 @@ active.
 @cmd{INCLUDE} causes the @pspp{} command processor to read an
 additional command file as if it were included bodily in the current
 command file.
-If errors are encountered in the included file, then command processing will
-stop and no more commands will be processed.
+If errors are encountered in the included file, then command
+processing stops and no more commands are processed.
 Include files may be nested to any depth, up to the limit of available
 memory.
 
@@ -322,18 +323,18 @@ It causes the command processor to read a file as if it were embedded in the
 current command file.
 
 If @subcmd{CD=YES} is specified, then before including the file, the
-current directory  will be changed to the directory of the included
+current directory becomes the directory of the included
 file.
 The default setting is @samp{CD=NO}.
-Note that this directory will remain current until it is
+Note that this directory remains current until it is
 changed explicitly (with the @cmd{CD} command, or a subsequent
 @cmd{INSERT} command with the @samp{CD=YES} option).
-It will not revert to its original setting even after the included
+It does not revert to its original setting even after the included
 file is finished processing.
 
 If @subcmd{ERROR=STOP} is specified, errors encountered in the
-inserted file will cause processing to immediately cease.
-Otherwise processing will continue at the next command.
+inserted file causes processing to immediately cease.
+Otherwise processing continues at the next command.
 The default setting is @subcmd{ERROR=CONTINUE}.
 
 If @subcmd{SYNTAX=INTERACTIVE} is specified then the syntax contained in
@@ -397,15 +398,17 @@ OUTPUT MODIFY
 @note{In the above synopsis the characters @samp{[} and @samp{]} are literals.
 They must appear in the syntax to be interpreted.}
 
-@cmd{OUTPUT} changes the appearance of the tables in which results are printed.
-In particular, it can be used to set the format and precision to which results are displayed.
+@cmd{OUTPUT} changes the appearance of the tables in which results are
+printed. In particular, it can be used to set the format and precision
+to which results are displayed.
 
-After running this command, the default table appearance parameters will have been modified and  each
-new output table generated will use the new parameters.
+After running this command, the default table appearance parameters
+will have been modified and  each new output table generated uses
+the new parameters.
 
-Following @code{/TABLECELLS SELECT =} a list of cell classes must appear, enclosed in square
-brackets.  This list determines the classes of values should be selected for modification.
-Each class can be:
+Following @code{/TABLECELLS SELECT =} a list of cell classes must
+appear, enclosed in square brackets.  This list determines the classes
+of values should be selected for modification. Each class can be:
 
 @table @asis
 @item RESIDUAL
@@ -448,12 +451,12 @@ PERMISSIONS
 @cmd{PERMISSIONS} changes the permissions of a file.
 There is one mandatory subcommand which specifies the permissions to
 which the file should be changed.
-If you set a file's  permission  to @subcmd{READONLY}, then the file will become
-unwritable either by you or anyone else on the system.
-If you set the permission to @subcmd{WRITEABLE}, then the file will become
-writeable by you; the permissions afforded to others will be
-unchanged.
-This command cannot be used if the @subcmd{SAFER} (@pxref{SET}) setting is active.
+If you set a file's  permission  to @subcmd{READONLY}, then the file
+will become unwritable either by you or anyone else on the system.
+If you set the permission to @subcmd{WRITEABLE}, then the file becomes
+writeable by you; the permissions afforded to others are unchanged.
+This command cannot be used if the @subcmd{SAFER} (@pxref{SET})
+setting is active.
 
 
 @node PRESERVE and RESTORE
@@ -494,10 +497,6 @@ SET
 
 (syntax execution)
         /LOCALE='@var{locale}'
-        /MEXPAND=@{ON,OFF@}
-        /MITERATE=@var{max_iterations}
-        /MNEST=@var{max_nest}
-        /MPRINT=@{ON,OFF@}
         /MXLOOPS=@var{max_loops}
         /SEED=@{RANDOM,@var{seed_value}@}
         /UNDEFINED=@{WARN,NOWARN@}
@@ -507,6 +506,8 @@ SET
         /CC@{A,B,C,D,E@}=@{'@var{npre},@var{pre},@var{suf},@var{nsuf}','@var{npre}.@var{pre}.@var{suf}.@var{nsuf}'@}
         /DECIMAL=@{DOT,COMMA@}
         /FORMAT=@var{fmt_spec}
+        /MDISPLAY=@{TEXT,TABLES@}
+        /SMALL=@var{number}
         /WIB=@{NATIVE,MSBFIRST,LSBFIRST,VAX@}
         /WRB=@{NATIVE,ISL,ISB,IDL,IDB,VF,VD,VG,ZS,ZL@}
 
@@ -522,38 +523,38 @@ SET
         /WIDTH=@{NARROW,WIDTH,@var{n_characters}@}
         /TNUMBERS=@{VALUES,LABELS,BOTH@}
         /TVARS=@{NAMES,LABELS,BOTH@}
+        /TLOOK=@{NONE,@var{file}@}
 
 (logging)
         /JOURNAL=@{ON,OFF@} ['@var{file_name}']
 
 (system files)
-        /COMPRESSION=@{ON,OFF@}
         /SCOMPRESSION=@{ON,OFF@}
 
 (miscellaneous)
         /SAFER=ON
         /LOCALE='@var{string}'
 
-
-(obsolete settings accepted for compatibility, but ignored)
-        /BOXSTRING=@{'@var{xxx}','@var{xxxxxxxxxxx}'@}
-        /CASE=@{UPPER,UPLOW@}
-        /CPI=cpi_value
-        /HIGHRES=@{ON,OFF@}
-        /HISTOGRAM='@var{c}'
-        /LOWRES=@{AUTO,ON,OFF@}
-        /LPI=@var{lpi_value}
-        /MENUS=@{STANDARD,EXTENDED@}
-        /MXMEMORY=@var{max_memory}
-        /SCRIPTTAB='c'
-        /TB1=@{'@var{xxx}','@var{xxxxxxxxxxx}'@}
-        /TBFONTS='@var{string}'
-        /XSORT=@{YES,NO@}
+(macros)
+        /MEXPAND=@{ON,OFF@}
+        /MPRINT=@{ON,OFF@}
+        /MITERATE=@var{number}
+        /MNEST=@var{number}
+
+(settings not yet implemented, but accepted and ignored)
+        /BASETEXTDIRECTION=@{AUTOMATIC,RIGHTTOLEFT,LEFTTORIGHT@}
+        /BLOCK='@var{c}'
+        /BOX=@{'@var{xxx}','@var{xxxxxxxxxxx}'@}
+        /CACHE=@{ON,OFF@}
+        /CELLSBREAK=@var{number}
+        /COMPRESSION=@{ON,OFF@}
+        /CMPTRANS=@{ON,OFF@}
+        /HEADER=@{NO,YES,BLANK@}
 @end display
 
 @cmd{SET} allows the user to adjust several parameters relating to
 @pspp{}'s execution.  Since there are many subcommands to this command, its
-subcommands will be examined in groups.
+subcommands are examined in groups.
 
 For subcommands that take boolean values, @subcmd{ON} and @subcmd{YES} are synonymous,
 as are @subcmd{OFF} and @subcmd{NO}, when used as subcommand values.
@@ -565,7 +566,7 @@ files.  The data input subcommands are
 @item BLANKS
 @anchor{SET BLANKS}
 This is the value assigned to an item data item that is empty or
-contains only white space.  An argument of SYSMIS or '.' will cause the
+contains only white space.  An argument of SYSMIS or '.'  causes the
 system-missing value to be assigned to null items.  This is the
 default.  Any real value may be assigned.
 
@@ -577,7 +578,7 @@ Setting it to @subcmd{DOT} causes the decimal point character to be
 Setting it to @subcmd{COMMA}
 causes the decimal point character to be @samp{,} and the grouping
 character to be @samp{.}.
-If the setting is @subcmd{COMMA}, then @samp{,} will not be treated
+If the setting is @subcmd{COMMA}, then @samp{,} is not treated
 as a field separator in the @cmd{DATA LIST} command (@pxref{DATA LIST}).
 The default value is determined from the system locale.
 
@@ -670,7 +671,7 @@ command file.  The default is 50.
 The maximum number of warnings + errors before @pspp{} halts processing the
 current command file.
 The special value of zero means that all warning situations should be ignored.
-No warnings will be issued, except a single initial warning advising the user
+No warnings are issued, except a single initial warning advising you
 that warnings will not be given.
 The default value is 100.
 @end table
@@ -689,19 +690,17 @@ Example locales are @code{en_US.UTF-8} (UTF-8 encoded English as
 spoken in the United States) and @code{ja_JP.EUC-JP} (EUC-JP encoded
 Japanese as spoken in Japan).
 
-@item MEXPAND
-@itemx MITERATE
-@itemx MNEST
-@itemx MPRINT
-Currently not used.
-
 @item MXLOOPS
-The maximum number of iterations for an uncontrolled loop (@pxref{LOOP}).
-The default @var{max_loops} is 40.
+@anchor{SET MXLOOPS}
+
+The maximum number of iterations for an uncontrolled loop
+(@pxref{LOOP}), and for any loop in the matrix language (@pxref{Matrix
+LOOP and BREAK Commands}).  The default @var{max_loops} is 40.
 
 @item SEED
-The initial pseudo-random number seed.  Set to a real number or to
-RANDOM, which will obtain an initial seed from the current time of day.
+@anchor{SET SEED}
+The initial pseudo-random number seed.  Set it to a real number or to
+RANDOM, to obtain an initial seed from the current time of day.
 
 @item UNDEFINED
 Currently not used.
@@ -714,13 +713,13 @@ possibilities for rounding with the RND operator (@pxref{Miscellaneous
 Mathematics}).  The default @var{fuzzbits} is 6.
 
 @item WORKSPACE
-The maximum amount of memory (in kilobytes) that @pspp{} will use to store data being processed.
-If memory in excess of the workspace size is required, then @pspp{} will start
-to use temporary files to store the data.
-Setting a higher value will, in general, mean procedures will run faster,
-but may cause other applications to run slower.
-On platforms without virtual memory management, setting a very large workspace
-may cause @pspp{} to abort.
+The maximum amount of memory (in kilobytes) that @pspp{} uses to
+store data being processed.  If memory in excess of the workspace size
+is required, then @pspp{} starts to use temporary files to store
+the data.   Setting a higher value means that procedures
+run faster, but may cause other applications to run slower.
+On platforms without virtual memory management, setting a very large
+workspace may cause @pspp{} to abort.
 @cindex workspace
 @cindex memory, amount used to store cases
 @end table
@@ -748,6 +747,23 @@ The default @subcmd{DOT} setting causes the decimal point character to be
 Allows the default numeric input/output format to be specified.  The
 default is F8.2.  @xref{Input and Output Formats}.
 
+@item MDISPLAY
+@anchor{SET MDISPLAY}
+
+Controls how the @code{PRINT} command within
+@code{MATRIX}@dots{}@code{END MATRIX} outputs matrices.  With the
+default @subcmd{TEXT}, @code{PRINT} outputs matrices as text.  Change
+this setting to @code{TABLES} to instead output matrices as pivot
+tables.  @xref{Matrix PRINT Command}, for more information.
+
+@item SMALL
+This controls how @pspp{} formats small numbers in pivot tables, in
+cases where @pspp{} does not otherwise have a well-defined format for
+the numbers.  When such a number has a magnitude less than the value
+set here, @pspp{} formats the number in scientific notation;
+otherwise, it formats it in standard notation.  The default is 0.0001.
+Set a value of 0 to disable scientific notation.
+
 @item WIB
 @anchor{SET WIB}
 
@@ -825,18 +841,26 @@ If @subcmd{TNUMBERS} is set to @subcmd{VALUES}, then all values are displayed wi
 (which for a numeric value is a number and for a string value an alphanumeric string).
 If @subcmd{TNUMBERS} is set to @subcmd{LABELS}, then values are displayed using their assigned labels if any.
 (@xref{VALUE LABELS}.)
-If the a value has no label, then it will be displayed using its literal value.
-If @subcmd{TNUMBERS} is set to @subcmd{BOTH}, then values will be displayed with both their label
+If the value has no label, then the literal value is used for display.
+If @subcmd{TNUMBERS} is set to @subcmd{BOTH}, then values are displayed with both their label
 (if any) and their literal value in parentheses.
 @item TVARS
+@anchor{SET TVARS}
 The @subcmd{TVARS} option sets the way in which variables are displayed in output tables.
 The valid settings are @subcmd{NAMES}, @subcmd{LABELS} and @subcmd{BOTH}.
 If @subcmd{TVARS} is set to @subcmd{NAMES}, then all variables are displayed using their names.
 If @subcmd{TVARS} is set to @subcmd{LABELS}, then variables are displayed using their label if one
-has been set.  If no label has been set, then the name will be used.
+has been set.  If no label has been set, then the name is used.
 (@xref{VARIABLE LABELS}.)
-If @subcmd{TVARS} is set to @subcmd{BOTH}, then variables will be displayed with both their label
+If @subcmd{TVARS} is set to @subcmd{BOTH}, then variables are displayed with both their label
 (if any) and their name in parentheses.
+@item TLOOK
+The @subcmd{TLOOK} option sets the style used for subsequent table
+output.  Specifying @subcmd{NONE} makes @pspp{} use the default
+built-in style.  Otherwise, specifying @var{file} makes @pspp{} search
+for an @file{.stt} or @file{.tlo} file in the same way as specifying
+@option{--table-look=@var{file}} the @pspp{} command line (@pxref{Main
+Options}).
 @end table
 
 @cindex headers
@@ -867,9 +891,6 @@ System file subcommands affect the default format of system files
 produced by @pspp{}.  These subcommands are
 
 @table @asis
-@item COMPRESSION
-Not currently used.
-
 @item SCOMPRESSION
 Whether system files created by @cmd{SAVE} or @cmd{XSAVE} are
 compressed by default.  The default is @subcmd{ON}.
@@ -908,8 +929,8 @@ as a locale name.
 If given as a locale name, only the character encoding of the
 locale is relevant.
 
-System files written by @pspp{} will use this encoding.
-System files read by @pspp{}, for which the encoding is unknown, will be
+System files written by @pspp{} use this encoding.
+System files read by @pspp{}, for which the encoding is unknown, are
 interpreted using this encoding.
 
 The full list of valid encodings and locale names/alias are operating system
@@ -928,6 +949,46 @@ Contrary to intuition, this command does not affect any aspect
 of the system's locale.
 @end table
 
+The following subcommands affect the interpretation of macros.
+
+@table @asis
+@item MEXPAND
+@anchor{SET MEXPAND}
+Controls whether macros are expanded.  The default is ON.
+
+@item MPRINT
+@anchor{SET MPRINT}
+Controls whether the expansion of macros is included in output.  This
+is separate from whether command syntax in general is included in
+output.  The default is OFF.
+
+@item MITERATE
+@anchor{SET MITERATE}
+Limits the number of iterations executed in @code{!DO} loops within
+macros.  This does not affect other language constructs such as
+@cmd{LOOP}.  This must be set to a positive integer.  The default is
+1000.
+
+@item MNEST
+@anchor{SET MNEST}
+Limits the number of levels of nested macro expansions.  This must be
+set to a positive integer.  The default is 50.
+@end table
+
+The following subcommands are not yet implemented, but PSPP accepts
+them and ignores the settings.
+
+@table @asis
+@item BASETEXTDIRECTION
+@itemx BLOCK
+@itemx BOX
+@itemx CACHE
+@itemx CELLSBREAK
+@itemx COMPRESSION
+@itemx CMPTRANS
+@itemx HEADER
+@end table
+
 @node SHOW
 @section SHOW
 @vindex SHOW
@@ -949,11 +1010,16 @@ SHOW
         [FORMAT]
         [FUZZBITS]
         [LENGTH]
+        [MEXPAND]
+        [MPRINT]
+        [MITERATE]
+        [MNEST]
         [MXERRS]
         [MXLOOPS]
         [MXWARNS]
         [N]
         [SCOMPRESSION]
+        [SYSTEM]
         [TEMPDIR]
         [UNDEFINED]
         [VERSION]
@@ -979,9 +1045,12 @@ Shows the current working directory.
 Shows the operating system details.
 @item @subcmd{N}
 Reports the number of cases in the active dataset.  The reported number is not
-weighted.  If no dataset is defined, then @samp{Unknown} will be reported.
+weighted.  If no dataset is defined, then @samp{Unknown} is reported.
+@item @subcmd{SYSTEM}
+Shows information about how PSPP was built.  This information is
+useful in bug reports.  @xref{Bugs}, for details.
 @item @subcmd{TEMPDIR}
-Shows the path of the directory where temporary files will be stored.
+Shows the path of the directory where temporary files are stored.
 @item @subcmd{VERSION}
 Shows the version of this installation of @pspp{}.
 @item @subcmd{WARRANTY}