X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=doc%2Fexpressions.texi;h=4f7b19d7efb83c963106d31f4d6e72a9292fb30d;hb=refs%2Fheads%2Fdev9;hp=7180bf8793ea24a3c0907c13d70eb3ce1e7ef87e;hpb=9743aa05898c191b3c2d3fead5ae0315beb44bb3;p=pspp diff --git a/doc/expressions.texi b/doc/expressions.texi index 7180bf8793..4f7b19d7ef 100644 --- a/doc/expressions.texi +++ b/doc/expressions.texi @@ -1,7 +1,16 @@ -@c Use @func when refering to a function. -@c Use @deftypefn for their definitions +@c PSPP - a program for statistical analysis. +@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; +@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. +@c A copy of the license is included in the section entitled "GNU +@c Free Documentation License". +@c +@c Use @func when referring to a function. +@c Use @deftypefn for their definitions @macro func{NAME} -@code{/NAME/} +@code{\NAME\} @end macro @node Expressions @@ -123,7 +132,7 @@ system-missing. The result of @code{0**0} is system-missing as well. @cindex @samp{-} @cindex negation @item - @var{a} -Reverses the sign of @var{a}. +Reverses the sign of @var{a}. @end table @node Logical Operators @@ -262,9 +271,10 @@ The sections below describe each function in detail. * Trigonometry:: ACOS ARCOS ARSIN ARTAN ASIN ATAN COS SIN TAN * Missing Value Functions:: MISSING NMISS NVALID SYSMIS VALUE * Set Membership:: ANY RANGE -* Statistical Functions:: CFVAR MAX MEAN MIN SD SUM VARIANCE -* String Functions:: CONCAT INDEX LENGTH LOWER LPAD LTRIM NUMBER - RINDEX RPAD RTRIM STRING SUBSTR UPCASE +* Statistical Functions:: CFVAR MAX MEAN MEDIAN MIN SD SUM VARIANCE +* String Functions:: CONCAT INDEX LENGTH LOWER LPAD LTRIM NUMBER + REPLACE RINDEX RPAD RTRIM STRING STRUNC SUBSTR + UPCASE * Time and Date:: CTIME.xxx DATE.xxx TIME.xxx XDATE.xxx DATEDIFF DATESUM * Miscellaneous Functions:: LAG YRMODA VALUELABEL @@ -341,9 +351,14 @@ FUZZBITS}), which is 6 unless overridden. @end deftypefn @cindex truncation -@deftypefn {Function} {} TRUNC (@var{number}) -Discards the fractional part of @var{number}; that is, rounds -@var{number} towards zero. +@deftypefn {Function} {} TRUNC (@var{number} [, @var{mult}[, @var{fuzzbits}]]) +Rounds @var{number} to a multiple of @var{mult}, toward zero. For the +default @var{mult} of 1, this is equivalent to discarding the +fractional part of @var{number}. Values that fall short of a multiple +of @var{mult} by less than @var{fuzzbits} of errors in the +least-significant bits of @var{number} are rounded away from zero. If +@var{fuzzbits} is not specified then the default is taken from SET +FUZZBITS (@pxref{SET FUZZBITS}), which is 6 unless overridden. @end deftypefn @node Trigonometry @@ -408,7 +423,11 @@ functions. In particular, user-missing values for numeric variables are converted to system-missing values. @deftypefn {Function} {} MISSING (@var{expr}) -Returns 1 if @var{expr} has the system-missing value, 0 otherwise. +When @var{expr} is simply the name of a numeric variable, returns 1 if +the variable has the system-missing value or if it is user-missing. +For any other value 0 is returned. +If @var{expr} takes another form, the function returns 1 if the value is +system-missing, 0 otherwise. @end deftypefn @deftypefn {Function} {} NMISS (@var{expr} [, @var{expr}]@dots{}) @@ -424,10 +443,7 @@ variable ranges using the @code{@var{var1} TO @var{var2}} syntax. @end deftypefn @deftypefn {Function} {} SYSMIS (@var{expr}) -When @var{expr} is simply the name of a numeric variable, returns 1 if -the variable has the system-missing value, 0 if it is user-missing or -not missing. If given @var{expr} takes another form, results in 1 if -the value is system-missing, 0 otherwise. +Returns 1 if @var{expr} has the system-missing value, 0 otherwise. @end deftypefn @deftypefn {Function} {} VALUE (@var{variable}) @@ -510,6 +526,13 @@ be numeric or string. Results in the mean of the values of @var{number}. @end deftypefn +@cindex median +@deftypefn {Function} {} MEDIAN (@var{number}, @var{number}[, @dots{}]) +Results in the median of the values of @var{number}. Given an even +number of nonmissing arguments, yields the mean of the two middle +values. +@end deftypefn + @cindex minimum @deftypefn {Function} {} MIN (@var{number}, @var{number}[, @dots{}]) Results in the value of the least @var{value}. The @var{value}s may @@ -613,15 +636,24 @@ empty string. Returns the number produced when @var{string} is interpreted according to format specifier @var{format}. If the format width @var{w} is less than the length of @var{string}, then only the first @var{w} -characters in @var{string} are used, e.g.@: @code{NUMBER("123", F3.0)} +characters in @var{string} are used, @i{e.g.}@: @code{NUMBER("123", F3.0)} and @code{NUMBER("1234", F3.0)} both have value 123. If @var{w} is greater than @var{string}'s length, then it is treated as if it were right-padded with spaces. If @var{string} is not in the correct format for @var{format}, system-missing is returned. @end deftypefn +@cindex strings, replacing substrings +@cindex replacing substrings +@deftypefn {Function} {} REPLACE (@var{haystack}, @var{needle}, @var{replacement}[, @var{n}]) +Returns string @var{haystack} with instances of @var{needle} replaced +by @var{replacement}. If nonnegative integer @var{n} is specified, it +limits the maximum number of replacements; otherwise, all instances of +@var{needle} are replaced. +@end deftypefn + @cindex strings, searching backwards -@deftypefn {Function} {} RINDEX (@var{string}, @var{format}) +@deftypefn {Function} {} RINDEX (@var{haystack}, @var{needle}) Returns a positive integer indicating the position of the last occurrence of @var{needle} in @var{haystack}. Returns 0 if @var{haystack} does not contain @var{needle}. Returns system-missing if @@ -634,7 +666,7 @@ Searches @var{haystack} for the last occurrence of each part, and returns the largest value. Returns 0 if @var{haystack} does not contain any part in @var{needle}. It is an error if @var{needle_len} does not evenly divide the length of @var{needle}. Returns system-missing -if @var{needle} is an empty string. +if @var{needle} is an empty string or if needle_len is less than 1. @end deftypefn @cindex padding strings @@ -675,6 +707,15 @@ format specifier @var{format}. For example, @code{STRING(123.56, F5.1)} has the value @code{"123.6"}. @end deftypefn +@cindex strings, trimming +@cindex strings, truncating +@cindex white space, trimming +@deftypefn {Function} {} STRUNC (@var{string}, @var{n}) +Returns @var{string}, first trimming it to at most @var{n} bytes, then +removing trailing spaces. Returns an empty string if @var{n} is +missing or negative. +@end deftypefn + @cindex substrings @cindex strings, taking substrings of @deftypefn {Function} {} SUBSTR (@var{string}, @var{start}) @@ -730,7 +771,7 @@ Most time and date functions will not accept earlier dates. Times and dates are handled by @pspp{} as single numbers. A @dfn{time} is an interval. @pspp{} measures times in seconds. Thus, the following intervals correspond with the numeric values given: - + @example 10 minutes 600 1 hour 3,600 @@ -773,7 +814,7 @@ Returns a time corresponding to @var{ndays} days. Returns a time corresponding to @var{nhours} hours, @var{nmins} minutes, and @var{nsecs} seconds. The arguments may not have mixed signs: if any of them are positive, then none may be negative, and -vice versa. +vice versa. @end deftypefn @node Time Extraction @@ -927,7 +968,7 @@ that is, gives the date that @var{date-or-time} is in. For a time, results in the number of whole hours beyond the number of whole days represented by @var{date-or-time}. For a date, results in the hour (as an integer between 0 and 23) corresponding to -@var{date-or-time}. +@var{date-or-time}. @end deftypefn @cindex day of the year @@ -949,7 +990,7 @@ corresponding to @var{date}. @cindex time, in minutes @deftypefn {Function} {} XDATE.MINUTE (@var{time-or-date}) Results in the number of minutes (as an integer between 0 and 59) after -the last hour in @var{time-or-date}. +the last hour in @var{time-or-date}. @end deftypefn @cindex months @@ -1183,8 +1224,8 @@ include an NCDF function. The individual distributions are described individually below. @menu -* Continuous Distributions:: -* Discrete Distributions:: +* Continuous Distributions:: +* Discrete Distributions:: @end menu @node Continuous Distributions @@ -1513,7 +1554,7 @@ subtraction. @enumerate @item -@code{( )} +@code{()} @item @code{**} @item @@ -1523,7 +1564,11 @@ subtraction. @item @code{+ -} @item -@code{EQ GE GT LE LT NE} +@code{= >= > <= < <>} +@item +@code{NOT} +@item +@code{AND} @item -@code{AND NOT OR} +@code{OR} @end enumerate