谁可以帮助优化完成数据表中行的基本功能?<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 [ 一世 ] ;
) ;
) ;