如何使用JSL根据某列的行数过滤出行数?例如,使用A过滤掉年龄等于7的行数。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );

内容组织数据探索和可视化Re: 如何使用JSL根据某列的行数过滤出行数?函数 Col Number() 计算指定列的计数
col number(:height )
计算 :Height 列中非缺失值的行数,因此在数据表 Big Class 的示例中,它将返回值 40。
Col Number() 函数可以传递多个值。第一个值是用于计算非缺失值数量的列,第二到 n 个附加列是“按组”列。
col number(:Height, :age )
上述函数调用计算 :age 的行当前值的 :Height 的非缺失值的计数。因此,对于数据表中的第 1 行,该函数将仅计算 :Age 值为 12 的行的 :Height 的非缺失值。它将返回值 8。 第9行,age的值为13,Age值为13的行的:Height非缺失值的个数为7。
但为什么我们要计算 :Height 的非缺失值的数量。出于其他原因,我们不知道它没有缺失值,因此,它将返回正确的计数。我们实际上可以使用任何数字列,因为任何数字列都没有非缺失值。
最初,我打算像这样指定函数调用
col number(:age, :age )
但将其更改为 :Height,因为我认为使用 :Age 两次会令人困惑
Re: 如何使用JSL根据某列的行数过滤出行数?谢谢吉姆!
dt << select where( Col Number( :height, :age ) == 7 );
dt << select where( Col Number( :weight, :age ) == 7 );
效果是一样的b但是这个修改不起作用:
dt << select where( Col Number( :age ) == 7 );
没明白原理。
Re: 如何使用JSL根据某列的行数过滤出行数?这是一种方法
names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
dt << select where( col number(:height, :age) == 7);
dt7 = dt << subset( selected rows(1), selected columns(0));