如何使用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 ) );