配方按摩到数据表<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 ) ;