dnl PSPP - a program for statistical analysis.
dnl Copyright (C) 2017 Free Software Foundation, Inc.
-dnl
+dnl
dnl This program is free software: you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation, either version 3 of the License, or
dnl (at your option) any later version.
-dnl
+dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
-dnl
+dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
dnl
DATA LIST LIST NOTABLE /x (f8).
BEGIN DATA.
-1
-0
-1
-2
-2
-4
-5
+0
+1
+2
+2
+4
+5
END DATA.
RANK x.
])
AT_CHECK([pspp -o pspp.csv rank.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variables Created By RANK
-
-
-
-x into Rx(RANK of x)
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function
+x,Rx,RANK
Table: Data List
x,Rx
])
AT_CHECK([pspp -o pspp.csv rank.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variables Created By RANK
-
-
-
-x into Rx(RANK of x)
-
-y into Ry(RANK of y)
-
-z into Rz(RANK of z)
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function
+x,Rx,RANK
+y,Ry,RANK
+z,Rz,RANK
Table: Data List
x,y,z,Rx,Ry,Rz
END DATA.
RANK a b (D)
- /PRINT=YES
+ /PRINT=YES
/RANK
/TIES=HIGH
/RFRACTION
])
AT_CHECK([pspp -o pspp.csv rank.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variables Created By RANK
-
-
-
-a into Ra(RANK of a)
-
-b into Rb(RANK of b)
-
-a into RFR001(RFRACTION of a)
-
-b into RFR002(RFRACTION of b)
-
-a into count(N of a)
-
-b into Nb(N of b)
-
-Variable,Description,Position
-a,Format: F8.2,1
-b,Format: F8.2,2
-Ra,"Label: RANK of a
-Format: F9.3",3
-RFR001,"Label: RFRACTION of a
-Format: F6.4",4
-count,"Label: N of a
-Format: F6.0",5
-Rb,"Label: RANK of b
-Format: F9.3",6
-RFR002,"Label: RFRACTION of b
-Format: F6.4",7
-Nb,"Label: N of b
-Format: F6.0",8
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function
+a,Ra,RANK
+b,Rb,RANK
+a,RFR001,RFRACTION
+b,RFR002,RFRACTION
+a,count,N
+b,Nb,N
+
+Table: Variables
+Name,Position,Label,Measurement Level,Role,Width,Alignment,Print Format,Write Format
+a,1,,Nominal,Input,8,Right,F8.2,F8.2
+b,2,,Nominal,Input,8,Right,F8.2,F8.2
+Ra,3,RANK of a,Ordinal,Input,8,Right,F9.3,F9.3
+RFR001,4,RFRACTION of a,Ordinal,Input,8,Right,F6.4,F6.4
+count,5,N of a,Scale,Input,8,Right,F6.0,F6.0
+Rb,6,RANK of b,Ordinal,Input,8,Right,F9.3,F9.3
+RFR002,7,RFRACTION of b,Ordinal,Input,8,Right,F6.4,F6.4
+Nb,8,N of b,Scale,Input,8,Right,F6.0,F6.0
Table: Data List
a,b,Ra,RFR001,count,Rb,RFR002,Nb
5 29
6 1
7 43
-8 8
+8 8
9 45
END DATA.
])
AT_CHECK([pspp -o pspp.csv rank.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variables Created By RANK
-
-
-
-a into Sa(SAVAGE of a)
-
-a into Pa(PERCENT of a)
-
-a into PRO001(PROPORTION of a using BLOM)
-
-a into Na(NTILES of a)
-
-a into NOR001(NORMAL of a using BLOM)
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function,Fraction
+a,Sa,SAVAGE,
+a,Pa,PERCENT,
+a,PRO001,PROPORTION,BLOM
+a,Na,NTILES,
+a,NOR001,NORMAL,BLOM
Table: Data List
a,b,Sa,Pa,PRO001,Na,NOR001
])
AT_CHECK([pspp -o pspp.csv rank.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variables Created By RANK
-
-
-
-a into Ra(RANK of a BY g2 g1)
-
-a into Na(NORMAL of a using RANKIT BY g2 g1)
-
-Variables Created By RANK
-
-
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function,Fraction,Grouping Variables
+a,Ra,RANK,,g2 g1
+a,Na,NORMAL,RANKIT,g2 g1
-a into RAN001(RANK of a BY g2)
-
-a into NOR001(NORMAL of a using RANKIT BY g2)
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function,Fraction,Grouping Variables
+a,RAN001,RANK,,g2
+a,NOR001,NORMAL,RANKIT,g2
Table: Data List
a,g1,g2,Ra,Na,RAN001,NOR001
AT_CLEANUP
# Also tests small ranks for special case of SAVAGE ranks.
-AT_SETUP([RANK with fractional ranks])
+AT_SETUP([RANK with fractional ranks])
AT_DATA([rank.sps], [dnl
DATA LIST LIST NOTABLE /a * w * .
BEGIN DATA.
WEIGHT BY w.
-RANK a
+RANK a
/FRACTION=TUKEY
/PROPORTION
/SAVAGE
])
AT_CHECK([pspp -o pspp.csv rank.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variables Created By RANK
-
-
-
-a into Pa(PROPORTION of a using TUKEY)
-
-a into Sa(SAVAGE of a)
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function,Fraction
+a,Pa,PROPORTION,TUKEY
+a,Sa,SAVAGE,
Table: Data List
a,w,Pa,Sa
])
AT_CHECK([pspp -o pspp.csv rank.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variables Created By RANK
-
-
-
-x into xl(RANK of x)
-
-Variables Created By RANK
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function
+x,xl,RANK
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function
+x,xh,RANK
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function
+x,xc,RANK
-x into xh(RANK of x)
-
-Variables Created By RANK
-
-
-
-x into xc(RANK of x)
-
-Variables Created By RANK
-
-
-
-x into Nx(NORMAL of x using VW)
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function,Fraction
+x,Nx,NORMAL,VW
Table: Data List
x,w,xl,xh,xc,Nx
LIST.
])
AT_CHECK([pspp -O format=csv rank.sps], [0], [dnl
-Variables Created By RANK
-
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function
+age,Rm,RANK
-
-age into Rm(RANK of age)
-
-Variables Created By RANK
-
-
-
-age into Rf(RANK of age)
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function
+age,Rf,RANK
Table: Data List
age,gender,Rm,Rf
])
AT_CHECK([pspp -o pspp.csv rank.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
-Variables Created By RANK
-
-
-
-foo into RAN001(RANK of foo)
-
-Variable,Description,Position
-foo,Format: F8.2,1
-rfoo,Format: F8.2,2
-ran003,Format: F8.2,3
-RAN001,"Label: RANK of foo
-Format: F9.3",4
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function
+foo,RAN001,RANK
+
+Table: Variables
+Name,Position,Label,Measurement Level,Role,Width,Alignment,Print Format,Write Format
+foo,1,,Nominal,Input,8,Right,F8.2,F8.2
+rfoo,2,,Nominal,Input,8,Right,F8.2,F8.2
+ran003,3,,Nominal,Input,8,Right,F8.2,F8.2
+RAN001,4,RANK of foo,Ordinal,Input,8,Right,F9.3,F9.3
])
AT_CLEANUP
"rank.sps:9: warning: Missing value(s) for all variables from rx onward. These will be filled with the system-missing value or blanks, as appropriate."
-Variables Created By RANK
-
-
-
-x into RNKRA01(RANK of x)
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function
+x,RNKRA01,RANK
Table: Data List
x,rx,RNKRA01
RANK x.
])
AT_CHECK([pspp -O format=csv --testing-mode rank.sps], [1], [dnl
-Variables Created By RANK
-
-
-
-x into Rx(RANK of x)
+Table: Variables Created by RANK
+Existing Variable,New Variable,Function
+x,Rx,RANK
rank.sps:14: error: RANK: DEBUG XFORM FAIL transformation executed
])
END DATA.
* invalid NTILES (no parameter)
-RANK x
+RANK x
/NTILES
.
* invalid NTILES (not an integer)
-RANK x
+RANK x
/NTILES(d)
.
* destination variable already exists
-RANK x
+RANK x
/RANK INTO x.
* Too many variables in INTO
-RANK x
+RANK x
/RANK INTO foo bar wiz.
])
AT_CHECK([pspp -O format=csv rank.sps], [1], [dnl
rank.sps:15.1: error: RANK: Syntax error at end of command: expecting `@{:@'.
-rank.sps:19.11: error: RANK: Syntax error at `d': expecting integer.
+rank.sps:19.11: error: RANK: Syntax error at `d': Expected positive integer for NTILES.
rank.sps:25: error: RANK: Variable x already exists.