如何在 PSPP 中找到几个日期中的最小值

how to find the minimum of several dates in PSPP

我正在尝试从 PSPP 中的多个日期列 中提取最小日期。 这是我正在使用的语法文件:

***************************************
* [1] READ FORM CSV FILE :: input.csv *
***************************************
GET DATA
/TYPE=TXT
/FILE='input.csv'
/FIRSTCASE=2
/VARIABLES=
startDate1 ADATE8
endDate1   ADATE8
startDate2 ADATE8
endDate2   ADATE8
startDate3 ADATE8
endDate3   ADATE8
startDate4 ADATE8
endDate4   ADATE8
.

***********************************
* [2] DEFINE VARIABLE :: earliest *
***********************************
Variable earliest:
COMPUTE earliest = MIN(startDate1,startDate2,startDate3,startDate4).
EXECUTE.

**************************************
* [3] SAVE TO CSV FILE :: output.csv *
**************************************
SAVE TRANSLATE
/OUTFILE='output.csv'
/REPLACE
/TYPE=CSV

当我检查 output.csv 时,我发现确实创建了一个新列, 但不是 mm/dd/yyyy 模式,它只是一些 11 位数字。 非常感谢任何帮助,谢谢!

嗯,我终于找到了。不是那么直接,但仍在工作。 问题是您必须将日期转换为整数,然后才可以 取最小值。

***************************************
GET DATA
/TYPE=TXT
/FILE='input.csv'
/FIRSTCASE=2
/VARIABLES=
startDate1 ADATE8
endDate1   ADATE8
startDate2 ADATE8
endDate2   ADATE8
startDate3 ADATE8
endDate3   ADATE8
startDate4 ADATE8
endDate4   ADATE8
.

*******************************************************************
Variable myDate1:
COMPUTE myDate1=XDATE.YEAR(startDate1)*1000+XDATE.JDAY(startDate1).
EXECUTE.
*******************************************************************
Variable myDate2:
COMPUTE myDate2=XDATE.YEAR(startDate2)*1000+XDATE.JDAY(startDate2).
EXECUTE.
*******************************************************************
Variable myDate3:
COMPUTE myDate3=XDATE.YEAR(startDate3)*1000+XDATE.JDAY(startDate3).
EXECUTE.
*******************************************************************
Variable myDate4:
COMPUTE myDate4=XDATE.YEAR(startDate4)*1000+XDATE.JDAY(startDate4).
EXECUTE.
*******************************************************************
Variable earliest:
COMPUTE earliest = MIN(myDate1,myDate2,myDate3,myDate4).
EXECUTE.

**************************************
SAVE TRANSLATE
/OUTFILE='output.csv'
/REPLACE
/TYPE=CSV