我有大约500万条记录的数据集。日期以字符串形式读入。它们的形式为MM / DD / YYYY HH:MM:SS。我只对它的日期部分感兴趣,所以我以(A10)格式阅读它们,这有效地缩短了时间。
然后我做ALTER TYPE DateVar (SDATE10)
。我这样做是因为我认为排序日期会更快但我无法确认这一点。
有没有办法计算SPSS命令来解决这样的问题?
答案 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)
您应该保留日期格式,因为:
日期在spss中实际上是数字(在显示中将日期格式化为日期,但只是数字都相同)。排序数字比排序字符串更快。
在任何情况下,按日期排序为字符串都不会按日期排序文件(例如," 12-OCT-2017">" 11-NOV-2017&#34 ;)
请参阅以下@ horace_vr评论中的另一个好理由。