テーブルに4つの列があり、行ごとに98%を下回る列の数を調べる必要がある場合、これを行うための簡単な数式を作成するにはどうすればよいですか。
同様の投稿がいくつかありますが、それらは私が必要とするよりもはるかに複雑です。
ありがとう
おそらく、この式でできることは次のとおりです。
test = Function( {val},
If( val < 0.98, 1, 0 )
);
Sum( test( :A ), test( :B ), test( :C ), test( :D</img> ) );
こんにちは@fionaweston 、
何を拡張して一般化するか@Georg投稿されたこのスクリプトは、任意のデータテーブルに保存でき、カウントを含む新しい列を生成します。 これを追加したかったのは、データテーブルに数百の列が含まれる可能性があり、これでそれだけでなく、行数も処理できるとのことです。
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
更新:元の投稿で列の欠落値が考慮されていないことに気付き、欠落値を考慮して修正しました。