如果我的表中有4列,并且我需要找出每行有多少列低于98%,那么我该如何编写一个简单的公式来做到这一点。
有一些类似的帖子,但是它们比我需要的复杂得多。
谢谢
此公式可能可以做到:
test = Function( {val},
If( val < 0.98, 1, 0 )
);
Sum( test( :A ), test( :B ), test( :C ), test( :D</img> ) );
你好@fionaweston ,
扩展和概括什么@乔治发布后,您可以将该脚本保存到任何数据表,并将生成一个包含计数的新列。 我想添加此内容是因为您提到数据表可以包含数百个列,并且可以处理该列以及您拥有的行数。
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Counts", Numeric, Continuous );
test = Function( {val},
If( val < 0.98, 1, 0 )
);
For( r = 1, r <= N Rows(), r++,
count = 0;
ret = 0;
For( col = 1, col <= N Col() - 1, col++,
If( Is Missing( Column( col )[r] ) == 1,
count = 0,
count = test( Column( col )[r] )
);
ret += count;
:Counts[r] = ret;
);
);您只需单击数据表名称旁边的热按钮,然后选择“新建脚本”,然后从上方将脚本复制/粘贴到新脚本中(并给它一个名称),然后单击绿色箭头即可运行它。 然后,您可以将该脚本复制/粘贴到任何数据表中-当然,您可以在“测试”函数中为使用的任何数据集更改比较值。
希望这可以帮助!,
DS
更新:我注意到我的原始帖子没有考虑列中的缺失值,并对其进行了纠正以解决了缺失值。