更快地隱藏和排除日期列你好,
我有一個包含 76K 行的 JMP 表,其中有一列名為“sortDateColumn”,其日期格式如下:
09/24/2020 11:29:25 AM
在我的代碼中,這行代碼需要 4 秒才能運行
minDate = "02/16/2021 12:23:09 AM";<BR />dt << Select where( Column( sortDateColumn )[] <= Informat( minDate, "MDYHMS" ) ) << Hide and Exclude();
有沒有更快的方法來運行這條線?因為這樣做幾次會使我的整個代碼減慢大約 1 分鐘
如果我在另一行做
dt << Select Where( :"age" < 650 );
花費的時間不到 0.1 秒,但對於日期來說,花費的時間要長得多
大規模定制回复:更快地隱藏和排除日期列我不知道這一變化會加快這一步驟多少,但其中一個版本可能值得稍微改進。
// call Informat() function once for constant time point
minDate = Informat( "16Feb2021 12:23:09 AM" );
Current Data Table() << Select Where( :column 1 <= minDate ) << Hide and Exclude();
// use literal value for constant time point
Current Data Table() << Select Where( :column 1 <= 16Feb2021:12:23:09 ) << Hide and Exclude();
回复:更快地隱藏和排除日期列這確實解決了問題,現在運行時間為 0.3 秒,謝謝!回复:更快地隱藏和排除日期列您的代碼存在一些錯誤,但我認為最拖慢您速度的是沒有信息“MDYHMS”。 這導致許多錯誤被寫入日誌,這就是花費這麼長時間的原因。 看看你的日誌,看看我是否正確。
試試這個:
minDate="02/16/2021 12:23:09 AM";
current data table() << Select where( :column 1 <= informat(minDate, "m/d/y h:m:s" )) << Hide and Exclude();
然而,即使這也超出了您的需要。 您可以通過使用日期時間常量來避免所有信息(您可以在在 JMP 中使用日期、時間、日期時間和持續時間)。
minDate="16Feb2021 12:23:09 AM";
current data table() << Select where( :column 1 <= informat( minDate ) << Hide and Exclude();
最後,在 Column() 指定之後出現了一個虛假的 []。 我認為這在這裡沒有用。