如何用JSL實現自動批量替換?該表由 JSL 運行過程動態生成。 如何使用 JSL 自動實現將此表的第 2 列開始的 0 值替換為空值 "" ?
JSL 需要替換為列號列表或動態名稱。
逐列替換或一次性替換。

Re: 如何用JSL實現自動批量替換?非常感謝你!
For( i = 3, i <= N Col( d2 ), i++,
As Column( i )[d2 << get rows where( As Column( i ) == 0 )] = Empty()
);
Re: 如何用JSL實現自動批量替換?語法:
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] = .;
);
);
已經在 JMP 14 中工作。
Re: 如何用JSL實現自動批量替換?我真的很期待使用 JMP 15。非常感謝!Re: 如何用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] = .;
);
);
Re: 如何用JSL實現自動批量替換?很好,這減少了要循環的行數,從而節省了大表的時間。 我在想可能有一種方法可以在整個表上使用重新編碼功能,但我看到你已經( @馬克貝利) 已經在別處解釋這是一個交互式編輯器,而不是 JSL 函數。
Re: 如何用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]] = .;
);
);
);
Re: 如何用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
)
)
);
Re: 如何用JSL實現自動批量替換?我粗心。 我直接用了VBA的語法,忘了用“Empty()”。Re: 如何用JSL實現自動批量替換?上傳一個數據文件,求高手幫忙,萬分感謝!