如何使用JSL实现自动批量替换?该表由JSL运行过程动态生成。如何使用JSL自动实现将此表的第2列开始的0值替换为空值“”?
必须将JSL替换为列号或动态名称的列表。
逐列更换色谱柱或一次性更换。

回复:如何使用JSL实现自动批量替换?上传数据文件,向专家寻求帮助。非常感谢!
回复:如何使用JSL实现自动批量替换?我粗心。我直接使用了VBA的语法,却忘了使用“ Empty()”。回复:如何使用JSL实现自动批量替换?我不知道这是否是计算效率最高的方法-实际上,我认为并非如此。但是,如果您需要一种快速的蛮力解决方案,这对我来说过去是有用的:遍历各列,然后遍历各行以查找要替换的值,并在找到新值时进行设置。
dt = current data table();
colnames = dt << Get Column Names(String);
for(c=2,c<=N Items(colnames),c++, // starting at 2 per your note
For Each Row(
If(column(dt,colnames[c])[]==0, // if you find a 0
column(dt,colnames[c])[]=Empty() // make it empty
)
)
);
回复:如何使用JSL实现自动批量替换?我无法测试此脚本,但它应该工作。
Names Default to Here( 1 );
// assume that data table is open
dt = Current Data Table();
For( c = 2, c <= N Cols( dt ), c++,
target row = dt << Get Rows Where( Column( dt, c )[] == 0 );
If( N Rows( target row ) > 0,
For( r = 1, r <= N Rows( target row ), r++,
Column( dt, c )[target row[r]] = .;
);
);
);
回复:如何使用JSL实现自动批量替换?很好,这减少了要循环的行数,从而节省了大表的时间。我当时想可能有一种方法可以在整个表格上使用Recode功能,但是我发现您已经( @markbailey ) 已经在其他地方解释这是一个交互式编辑器,而不是JSL函数。
回复:如何使用JSL实现自动批量替换?在JMP 15中,这样的处理将更加容易和快捷。您可以在一次调用中将缺失值分配给所有行。
Names Default to Here( 1 );
// assume that data table is open
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Wait( 1 );
// create 5 observations of zero
n = N Row( dt );
For( i = 1, i < 6, i++,
r = Random Integer( 1, n );
:weight[r] = 0;
r = Random Integer( 1, n );
:height[r] = 0;
);
Wait( 1 );
For( c = 4, c <= N Cols( dt ), c++,
target row = dt << Get Rows Where( Column( dt, c )[] == 0 );
If( N Rows( target row ) > 0,
Column( dt, c )[target row] = .;
);
);
回复:如何使用JSL实现自动批量替换?我真的很期待使用JMP15。非常感谢!回复:如何使用JSL实现自动批量替换?我真的很期待使用JMP15。非常感谢!
For( c = 4, c <= N Cols( dt ), c++,
target row = dt << Get Rows Where( Column( dt, c )[] == 0 );
If( N Rows( target row ) > 0,
Column( dt, c )[target row] = .;
);
);
already works in JMP 14.
回复:如何使用JSL实现自动批量替换?非常感谢你!
For( i = 3, i <= N Col( d2 ), i++,
As Column( i )[d2 << get rows where( As Column( i ) == 0 )] = Empty()
);