在SPSS中对日期排序或排序字符串更快吗?如果是这样,多少钱?

时间:2017-12-11 10:22:33

标签: performance sorting date spss

我有大约500万条记录的数据集。日期以字符串形式读入。它们的形式为MM / DD / YYYY HH:MM:SS。我只对它的日期部分感兴趣,所以我以(A10)格式阅读它们,这有效地缩短了时间。

然后我做ALTER TYPE DateVar (SDATE10)。我这样做是因为我认为排序日期会更快但我无法确认这一点。

有没有办法计算SPSS命令来解决这样的问题?

2 个答案:

答案 0 :(得分:2)

我能想到的最快的方法是使用python作为时间戳,使用普通的SPSS语法进行排序 - 只是为了复制真实的条件

***Start timer, in python.    
begin program.
import time
start = time.time()
end program.
***go out of python, into normal SPSS syntax, and do your stuff.

/*Put the syntax you want to test here

***get back to python, stop timer, and calculate time difference.
begin program.
end = time.time()
print("It took ",end - start, " seconds")
end program.

检查输出日志,它会显示时间。

不是很科学,但又快捷方便。 我建议在测试之间重新启动SPSS - 只是为了确保一个测试不影响另一个。

根据我的经验,alter type会影响代码执行时间。不确定是什么,但alter type之后一切似乎都变慢了。因此,在使用alter type后,您也可以考虑保存并重新打开。

答案 1 :(得分:1)

您应该保留日期格式,因为:

  1. 日期在spss中实际上是数字(在显示中将日期格式化为日期,但只是数字都相同)。排序数字比排序字符串更快。

  2. 在任何情况下,按日期排序为字符串都不会按日期排序文件(例如," 12-OCT-2017">" 11-NOV-2017&#34 ;)

  3. 请参阅以下@ horace_vr评论中的另一个好理由。