列名リストに基づいてテーブルを分割するこんにちは、JMP コミュニティです。この問題の解決を手伝っていただければ幸いです。
私は、ユーザーが特定の (入力される) 係数を使用して、いくつかのサンプル濃度の 1x、2x、および/または 3x SD 値を計算できるようにするスクリプトを作成しました。 1x、2x、および/または 3x SD 値はすべて 3 つのチェック ボックスで選択できます。 この最初の部分は完璧に機能します。
選択したチェック ボックスの量に基づいて、結果として得られるデータ テーブルでは、新しいデータ テーブルに分割する可変量の列が得られます。
存在するすべての SD 列 (常に列 3 から開始) に基づいてデータ テーブルを分割する 2 番目のスクリプトを構築しようとしましたが、成功しませんでした。 これはこれまでの私のスクリプトです:
Names Default To Here( 1 );
dt1 = Data Table( "SD Calculation" );
//Get list of Column names
ColList = dt1 << Get Column Names();
//Split dt1 based on ColList
dt2 = Data Table( "SD Calculation" ) << Split(
Split By( :nomRP ),
Split( ColList[3] ),
Remaining Columns( Drop All ),
Sort by Column Property
);
結果として得られる分割テーブルは次のようになりますが、ほとんどのデータが欠落しています。

これは次のようになります (これを実現するには、すべての列名を指定する必要がありますが、すべての列が各テーブルに存在するわけではありません (ユーザーの選択に基づきます)。

すべての SD 計算を選択した場合 (5 つのサンプル濃度に対して ±1 ~ 3 SD)、30 カラムが存在する必要があります。
私のスクリプトの目標:
nomRP 値は 50、71、100、141、200 であり、これらの nomRP 値ごとに 1 ~ 3x SD 値を計算できます。 すべての計算結果は、新しいデータ テーブルに分割する必要があります。 これらのデータを使用して、計算された SD 値に基づく範囲を示す図をグラフ ビルダーで作成したいと思います。
敬具、
ピム。
-編集: 「SD 計算」テーブルを追加しました。
データのブレンディングとクリーンアップRe: 列名リストに基づいてテーブルを分割するこのトピックに関する質問と回答を提供してくれた Pim/Hadley に感謝します。
これが古い投稿であることは承知していますが、後に来る人のためにパン粉を残したかったのです。
私は今日、上で投稿したハドリーの解決策に沿って、これと同様のことを行おうとしていましたが、同時にネストされたEval(Eval Expr(Expr())) アプローチ (後者はまだ作業中...)。
少し遊んでみたところ、次のことがわかりました。
dt2 = Data Table( "SD Calculation" ) << Split(
Split By( :nomRP ),
Split(Eval Expr(ColList)),
Remaining Columns( Drop All ),
Sort by Column Property
);ハドリーの解決策からこれと同じ結果が得られます。
Eval(
Eval Expr(
dt2 = Data Table( "SD Calculation" ) << Split(
Split By( :nomRP ),
Split(expr(ColList)),
Remaining Columns( Drop All ),
Sort by Column Property
);
)
);
Re: 列名リストに基づいてテーブルを分割するハドリー、これはまさに私が探していたものです。
誠にありがとうございます。また、に関する投稿を共有していただきありがとうございますEval(Eval Expr(Expr()))。 これは、今後のスクリプト作成の冒険に役立つでしょう。
Re: 列名リストに基づいてテーブルを分割するこんにちは、
これは Eval(Eval Expr(Expr())) が役立つケースの 1 つだと思います。以下のコードを見て、期待どおりの動作をするかどうかを確認してください。またここに投稿がありますこのトピックでは、これらのタイプの方法について説明します。
Names Default to Here(1);
dt1=Data Table("SD Calculation");
//Get list of Column names
ColList=dt1<<GET column="" names=""></GET>