在 SPSS 中对日期排序或对字符串排序是否更快?如果是这样,增加多少?
Is it faster to sort dates or sort strings in SPSS? If so, by how much?
我有一个包含大约 500 万条记录的数据集。日期以字符串形式读入。它们的格式为 MM/DD/YYYY HH:MM:SS。我只对它的日期部分感兴趣,所以我以 (A10) 格式阅读它们,这样可以有效地缩短时间。
然后我ALTER TYPE DateVar (SDATE10)
。我这样做是因为我认为排序日期会更快,但我找不到对此的确认。
有没有一种方法可以对 SPSS 命令进行计时以解决此类问题?
我能想到的最快方法是使用 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
.
后保存并重新打开
您应该保留日期格式,因为:
spss 中的日期实际上是数字(在显示中格式化为日期,但只是数字相同)。排序数字比排序字符串更快。
在任何情况下,按日期作为字符串排序不会按日期排序文件(例如“12-OCT-2017”>“11-NOV-2017”)。
在下面@horace_vr的评论中查看另一个很好的理由。
我有一个包含大约 500 万条记录的数据集。日期以字符串形式读入。它们的格式为 MM/DD/YYYY HH:MM:SS。我只对它的日期部分感兴趣,所以我以 (A10) 格式阅读它们,这样可以有效地缩短时间。
然后我ALTER TYPE DateVar (SDATE10)
。我这样做是因为我认为排序日期会更快,但我找不到对此的确认。
有没有一种方法可以对 SPSS 命令进行计时以解决此类问题?
我能想到的最快方法是使用 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
.
您应该保留日期格式,因为:
spss 中的日期实际上是数字(在显示中格式化为日期,但只是数字相同)。排序数字比排序字符串更快。
在任何情况下,按日期作为字符串排序不会按日期排序文件(例如“12-OCT-2017”>“11-NOV-2017”)。
在下面@horace_vr的评论中查看另一个很好的理由。