如果我的表中有 4 列,并且我需要找出每行有多少列低于 98%,我如何编写一个简单的公式来执行此操作。
有一些类似的帖子,但它们比我需要的要复杂得多。
谢谢
你好@菲奥纳斯顿,
如前所述,这是我使用 Counts 脚本制作的数据表模型。 它只会计算数字/连续列,并忽略表中的任何其他数据/建模类型列。
希望这可以帮助!,
DS
你好@菲奥纳斯顿,
扩展和概括什么@乔治发布后,您可以将此脚本保存到任何数据表中,它将生成一个包含计数的新列。 我想添加此内容是因为您提到数据表可能有数百列,而这可以处理该数据表以及您拥有的行数。
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
更新:我注意到我原来的帖子没有考虑列中的缺失值,并对其进行了更正以考虑缺失值。
也许这个公式可以做到:
test = Function( {val},
If( val < 0.98, 1, 0 )
);
Sum( test( :A ), test( :B ), test( :C ), test( :D</img> ) );