誰可以幫助優化完成數據表中行的基本功能?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
我正在尋找更有經驗的JMP用戶的一些建議,以解決以下問題。
我經常需要處理每個單元最多包含4行的數據表。然而,一些系統參數僅針對單個單元的第一個進行記錄,儘管也適用於與該單元相關聯的其他行。
為了能夠分析和分組數據,我需要為單元的所有行完成這些系統參數。
由於我沒有機會將數據記錄更改為數據庫,因此在進行任何分析之前,我需要在數據庫提取之後對此進行處理。
因此,我創建了一個解決方法,如下所示。
它提供了所需的結果,但速度很慢,實際上對於行數超過1000的數據表不可行。
dt =當前數據表();
dt << Sort(By(:unit),Order(Ascending),Replace Table);
:param_1 << Formula(對於每一行(:param_1 [row()+ 1] =(if(:unit [row()] ==:unit [row()+ 1],
:param_1 [row()] ,: param_1 [row()+ 1])),
)
Eval公式
);
我相信有一種更有效和更優雅的方法來解決這個問題,但我不得不承認我的技能非常有限。
我感謝來自更有經驗的用戶的任何意見。
謝謝,
盧茨
Re:誰可以幫助優化基本功能來完成數據表中的行?非常感謝。今天將在辦公室首先測試代碼。
Re:誰可以幫助優化基本功能來完成數據表中的行?針對40,000行表對我的代碼進行了測試,並在不到一秒的時間內返回。
Re:誰可以幫助優化基本功能來完成數據表中的行?試試這個代碼。 它假設您有一個雙列表,其中一列稱為Unit,另一列稱為Param_1。 我沒有進行任何性能測試,但這可能很快就會在你的桌面上拉鍊。 僅在必要時設置值。
DT = 新表 ( “Unit-Param示例” ,
添加行 ( 16 ) ,
新欄目 ( “單元” ,
字符 ,
公稱 ,
設定值 (
{ “一個” , “一個” , “一個” , “一個” , “B” , “B” , “B” , “B” , “C” , “C” , “C” , “C” , “d” , “d” ,
“d” , “d” }
)
) ,
新欄目 ( “PARAM_1” ,
數字 ,
連續 ,
格式 ( “最好” , 12 ) ,
設定值 ( [ 32 , 32 , 32 , 32 , 25 , 。 , 。 , 。 , 。 , 14 , 。 , 。 , 。 , 。 , 13 , 。 ] )
)
) ;
//按單位和參數排序,如果有任何缺失,則它們位於集合的第2,3,4位
DT << 分類 ( 通過 ( : 單元 , : PARAM_1 ) ,訂購 ( 上升 ,降 ) ,替換錶 ) ;
//獲取第一行值
old_unit = DT : 單元 [ 1 ] ;
old_param = DT : PARAM_1 [ 1 ] ;
對於 ( 一世 = 2 ,一世 <= NROWS ( DT ) ,一世 ++,
一個單元 = DT : 單元 [ 一世 ] ;
one_param = DT : PARAM_1 [ 一世 ] ;
如果 ( 一個單元 == old_unit & 不見了 ( one_param ) ,
DT : PARAM_1 [ 一世 ] = old_param ;
) ;
如果 ( 一個單元 != old_unit ,
old_unit = 一個單元 ;
old_param = DT : PARAM_1 [ 一世 ] ;
) ;
) ;