如何使用JSL快速篩選出所有資料表中多列值不為空的行?如果一個資料表超過100列,假設第11 - 100列是數字格式,如何使用JSL快速過濾掉第11 - 100列中所有不為空的行。
謝謝!
Re: 如何使用JSL快速過濾掉所有資料表中多列值不為空的行?你是對的......我的錯誤
Re: 如何使用JSL快速過濾掉所有資料表中多列值不為空的行?謝謝吉姆!
我試過了。 它們是等價的。
Number( dt[Row(), Index( 11, 15 )] ==5)
sum(if(abs(As Column(11))>=0,1),if(abs(As Column(12))>=0,1),if(abs(As Column(13))>=0,1),if(abs(As Column(14))>=0,1),if(abs(As Column(15))>=0,1))==5
適用於非空值,而不是非零值。

Re: 如何使用JSL快速過濾掉所有資料表中多列值不為空的行?只是為了澄清,
Number( dt[Row(), Index( 11, 15 )] )
不會給你相同的結果
sum(if(abs(As Column(11))>=0,1),if(abs(As Column(12))>=0,1),if(abs(As Column(13))>=0,1),if(abs(As Column(14))>=0,1),if(abs(As Column(15))>=0,1))
第一個方程式將為您提供非空白(空)值的計數,而第二個方程式將為您提供非零值的計數。
此外,第二個方程式的更簡單版本是:
Sum( As Column( 11 ) != 0, As Column( 12 ) != 0, As Column( 13 ) != 0, As Column( 14 ) != 0, As Column( 15 ) != 0 )
Re: 如何使用JSL快速過濾掉所有資料表中多列值不為空的行?我只是想添加如何知道是否需要進行計算什麼是更好的方法?
當列數較少時,我使用這種方法:
sum(if(abs(As Column(11))>=0,1),if(abs(As Column(12))>=0,1),if(abs(As Column(13))>=0,1),if(abs(As Column(14))>=0,1),if(abs(As Column(15))>=0,1))
謝謝!
Re: 如何使用JSL快速過濾掉所有資料表中多列值不為空的行?- 我知道您知道如何向資料表新增列
- 剛剛向您展示如何尋找不為空的行
- 所以我一定不懂你在問什麼
Re: 如何使用JSL快速過濾掉所有資料表中多列值不為空的行?謝謝吉姆!
這是一種有效的方法。
如何在表中新增列併計算第 11-100 行中不為空的列數?
Re: 如何使用JSL快速過濾掉所有資料表中多列值不為空的行?這應該會給你你想要的。
Names Default To Here( 1 );
dt = Current Data Table();
dt << select where( Number( dt[Row(), Index( 11, 100 )] ) == 90 );
d3 = dt << Subset( Output Table( "t" ), Selected Rows( 1 ), selected columns( 0 ) );
Re: 如何使用JSL快速過濾掉所有資料表中多列值不為空的行?沒有找到號碼。

Re: 如何使用JSL快速過濾掉所有資料表中多列值不為空的行?我發現這是一種對同一行中的多列求和的方法。
sumVec = (VSum(mat`))`;
我想這樣做,但我不知道如何以這種方式計算出同一行中非空列的數量。
謝謝!
dt = Current Data Table();
mat = dt[0, 11 :: 100];
nu = (Number( mat` ))`;
dt << New Column( "text", Numeric, Continuous, Values( nu ) );
dt << Select Where( :text == 90 );
d3 = dt << Subset( Output Table( "t" ), Selected Rows( 1 ), selected columns( 0 ) );