配方按摩到數據表<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
我有數以千計的公式列來創建和刪除這些列中的公式。
所以為了加快這個過程,我按照以下方式添加公式。
dt <<抑制公式評估(1);
for loop(
新col(公式);
dt <<抑制公式Eval(0);
dt << Run Formulas;
);
第二個循環
for循環(Try(列(dt,Newcolname [ik])<<刪除公式)) ;
有沒有辦法將刪除公式按摩發送到datatable而不是每列。
因為for循環刪除公式所需的時間超過5分鐘。
任何工作都很重要讚賞 。超級計算機不是一種選擇。
回复:配方按摩到數據表michael.anderson
嗨邁克爾,你的想法似乎非常有趣,使用metrices創建公式。但我不確定我們可以利用這種方法。
下面是一種情況:我已經將我的新列名和相應的公式組織為excel表中的2列,左列是要添加到表中的列的新名稱,右列具有許多複雜的公式。
現在我必須使用for循環添加這些100或1000個公式(到目前為止我知道)。所以FOR循環不知道什麼是常量,什麼是列名。所以我用namexpr來實現這個:column(dttable,Newcolname [ij])<< set Formula(nameexpr(newcol1))
所以我的問題是,是否有類似的方法(使用expr)與矩陣相同而不將列值放入矩陣<< GetAsMatrix?
newcol1 = 34 * COL1 / 54 * COL2-COL3 / 2
newcol2 = COL1 / 54 * COL2-COL3 / 2
newcol3 = 36 + COL1 / 54 * COL2-COL3 / 2
newcol4 = 37 * * 1E6 COL1 / 54 * COL2-COL3 / 2
謝謝,內存
回复:配方按摩到數據表謝謝MS。你通過連接創建一個新表的方法很棒。它保留所有表變量和行順序等但沒有公式。它幫助我消除了刪除公式所花費的額外大量時間。@!
謝謝你提出了很好的建議。配方按摩到數據表
回复:配方按摩到數據表了解... 所有你要求的仍然可以使用數據作為矩陣...... 我建議你將數據作為矩陣,進行計算,然後將結果寫入數據表。 然後,您可以按原樣添加規範限制,單位等,但是需要添加然後從數據表中刪除公式。 通常情況下,你的減速來自於數據表本身的修改(我認為)每次更改公式時基本上都會重建。
如果你真的想把它全部保存在數據表中,那麼將列公式設置為Empty()可能比刪除它更快... 但你必須嘗試這一點才能確定。
最好,
中號
回复:配方按摩到數據表嗨,
我確信度量標準要快得多,而不是使用數據表。但我需要表中的數據,因為需要使用本地數據過濾器來識別分裂中的非常小的改進。
這是涉及的步驟
1。用W和L標準化原始電參數所需的公式,例如Ion * W / * Wa。
2。通過乘以適當的因子,將數據轉換為適當的單位(如pA,uA,nA,mV,mW)。
3。步驟2也適用於所需的一些原始參數。這是需要刪除公式的地方,以便可以相互依賴地轉換新列。
注意:
1。我們無法合併公式和規範限製文件,因為規範限制不斷更新。所以必須保持分開。
2。mergin單位轉換也不是一種選擇。
內存
回复:配方按摩到數據表ram.asra@gmail.com
嗨!也許回過頭來找出為什麼需要公式的千列可能是一個更好的起點。
我知道將內存中的值計算為矩陣比使用數據表更快。 這也將首先省略對列的需求。 今年Discovery的這一點實際上是一個非常健康的討論,最佳做法是盡可能避免在腳本中使用列公式。
你能幫我們多了解一下這個用例嗎?
最好,
中號
回复:配方按摩到數據表我想到的一個解決方法是使用刪除Concatenate()功能的公式。下面的代碼創建了數據表的副本 - 包括任何表變量或腳本 - 但沒有公式。
DT = 當前數據表 () ; //包含要刪除的公式的表
new_dt = DT << CONCATENATE ( dt_temp = 新表 ( “溫度” ,新欄目 ( “刪除我” ))) ;
new_dt << 刪除列 ( “刪除我” ) ;
關 ( dt_temp , NOSAVE ) ;