2017-12-11 34 views
2

私は約500万レコードのデータセットを持っています。日付は文字列として読み込まれます。 MM/DD/YYYY HH:MM:SSの形式です。私はそれの日付部分だけに興味があるので、時間を効果的にトリムする(A10)形式でそれらを読む。SPSSで日付を並べ替えたり文字列を並べ替える方が速いのですか?もしそうなら、どれくらい?

私は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を再起動することをお勧めします.1つのテストが他のテストに影響しないことを確認するだけです。

私の経験から、alter typeはコード実行時間に影響を与えるものです。何がわかりませんが、alter typeの後はすべてが遅くなります。したがって、alter typeを使用した後は、保存して再オープンすることを検討することもできます。

+0

助けてくれてありがとう。私はあなたが提案したものを試しました。 私は別の「オプション」で数回走っていました。また、日付や文字列をソートする際に大きな違いはありません。私がそれぞれ得た時間は±5秒間変動し、平均して平均してほぼ同等になった。 この特定のケースでは、変更タイプを避けるために、それらを文字列として残しておきます。他の例では、他のものを簡単にするために日付を付ける必要がありますが、ここではそれらを並べ替えて一度だけ使用します。 – Moohan

+0

このロジックを使って何かをタイミングさせることができます。より複雑なプログラムを書くこともできます。これは自動的に同じ構文を何度も実行し、平均時間(および信頼区間やその他の統計情報など)を表示します。複雑な統計ベースの方法ですよね? –

+0

正確には、サンプルサイズを大きくするためにそれをどのように拡張するかを簡単に検討しましたが、すでに記録した数回は合理的に似ていました。今) – Moohan

1

あなたは日付の書式を維持する必要があり、理由:SPSSでは

  1. 日付は、実際に(日付、ただの数字すべてが同じようなディスプレイでフォーマット)の数です。数字の並べ替えは、文字列の並べ替えよりも高速です。

  2. いずれの場合も、日付による文字列の並べ替えでは、日付順に並べ替えられません(「12-OCT-2017」>「11-NOV-2017」など)。

  3. 下記の@ horace_vrのコメントに別の正当な理由があります。

+1

メモリ使用量はどうですか?私は数値が文字列(文字あたりのバイト数)よりも少ないスペースを取ると考えており、これは非常に大きなデータファイルに関連する可能性があります。これはOPの場合のようです。 –

関連する問題