Re: リストから列名を使用して列式を作成する方法複数の列名を持つ行が正しく処理されないという問題が発生していました。これがあなたの問題を解決するための私の試みです。

Names Default To Here( 1 );
Clear Globals();
dt = Data Table( "Untitled 910" );
dt2 = Data Table( "Soft Bin Summary" );
current data table(dt);
// Build execution string
sumString = "";
for each row(
if(:Yield SummaryBins != "",
i=1;
while(word(i,:Yield SummaryBins,"[] ") != "",
sumString = sumString || ", :\!"" || word(i,:Yield SummaryBins,"[] ") || "\!"n";
i++;
)
)
);
// Remove first comma
sumString = substr(sumString, 1);
// Execute new column string
eval(parse("dt2<<NEW column=""></NEW>Re: リストから列名を使用して列式を作成する方法ありがとうジム。
あなたのコードは機能します。 グループごとに個別の列を作成したい。
例: 以下のケースでは、それぞれの列名を含む Opens と Shorts の 2 つのグループがあります。
それぞれの値を合計する式を持つ 2 つの異なる列が必要です
集計テーブルの列 1 (列 (39、41、43) の合計) および列 2 (列 (38、40、42) の合計)

Re: リストから列名を使用して列式を作成する方法私が提供したコードを拡張するだけの問題です。
Names Default To Here( 1 );
Clear Globals();
dt = Data Table( "Untitled 910" );
dt2 = Data Table( "Soft Bin Summary" );
Current Data Table( dt );
// Build execution string
openString = shortsString = "";
For Each Row(
If( :Yield SummaryBins != "",
If( :Yield SummaryLabel == "Opens",
i = 1;
While( Word( i, :Yield SummaryBins, "[] " ) != "",
openString = openString || ", :\!"" || Word( i, :Yield SummaryBins, "[] " ) || "\!"n";
i++;
);
);
If( :Yield SummaryLabel == "Shorts",
i = 1;
While( Word( i, :Yield SummaryBins, "[] " ) != "",
shortsString = shortsString || ", :\!"" || Word( i, :Yield SummaryBins, "[] " ) || "\!"n";
i++;
);
);
)
);
// Remove first comma
openString = Substr( openString, 1 );
shortsString = Substr( shortsString, 1 );
// Execute new column strings
Eval( Parse( "dt2<<NEW column=""></NEW>
時間をかけて提供されたコードを調べ、コードがどのように機能するかを理解していない場合は追加の質問で返信してください。
Re: リストから列名を使用して列式を作成する方法もちろんできます....ルールは何ですか?Re: リストから列名を使用して列式を作成する方法やあ@txnelson 、アドバイスいただけますか?
Re: リストから列名を使用して列式を作成する方法私があなたの説明を読んだのは、あなたが持っているルールは、Yield SummaryLabel 列に値を持つ条件テーブルの各行に新しい列を作成することであるということです。
したがって、Conditions テーブルの各行を読み、Yield SummaryLabel 列に値を含む行が見つかったら、新しい列を作成することをお勧めします。
問題が発生するケースが 1 つあります。SYL_Yield が指定されている行 14 の Yield SummaryBins の値は 1 です。「1」という欄はありません。

Re: リストから列名を使用して列式を作成する方法行 14 は除外できます。 コードを共有できますか? 参照してアイデアを得たかっただけです
Re: リストから列名を使用して列式を作成する方法Names Default To Here( 1 );
dt = Data Table( "Condition table" );
dt2 = Data Table( "Soft Bin Summary" );
Current Data Table( dt );
// Rule: Create a new Summary Column for each row in the Condition Table
// that has a value in the Yield SummaryLabel column
For( i = 1, i <= N Rows( dt ), i++,
If( dt:Yield SummaryLabel[i] != "",
theString = "";
k = 1;
While( Word( k, dt:Yield SummaryBins[i], "[] " ) != "",
theString = theString || ", :\!"" || Word(
k,
dt:Yield SummaryBins[i],
"[] "
) || "\!"n";
k++;
);
theString = Substr( theString, 1 );
Eval(
Parse(
"dt2<<NEW column=""></NEW>
コミュニティ メンバーが他のメンバーを助けることに対して得られる唯一の報酬は、彼らが助けたメンバーがより自立することから得られる満足です。他の人の作業コードをカット アンド ペーストすることは、自給自足の良い方法ではありません。
Re: リストから列名を使用して列式を作成する方法@txnelsonありがとうございました。 大変感謝いたします。
動的に行うことはできますか? 2つ以上のグループがある場合があります。 別の文字列実行関数を書くのは面倒です。
下に参考表を貼っておきます
Re: リストから列名を使用して列式を作成する方法@txnelsonルールは前の例と同様です。
それぞれのビンを合計する数式を使用して、個別の列グループをそれぞれ作成します。
式にすべての列名ビンを追加して、ソフト ビン サマリー テーブルに列を作成したいと考えています。
例: 式 (Sum( Column ("52", "42","49") )) で IDD Currents グループ列を作成します。
数式を使用して Open グループ列を作成する(Sum( 列 ("39", "41","43") ))
同様に、[歩留まりの概要] ラベル列の残りのラベル グループについても同様です。
リストの列名を使用して列式を作成する方法やあ、
2番目のJMPテーブルに新しい列を作成したいリストに含まれる列を単純に合計する数式を使用します(コードでは列名を割り当てています)ビンス。
例: リストには列名「39」、「41」、「43」が含まれています。 これらすべてを数式に追加して、ソフト ビンの概要テーブルに新しい列を作成したいと考えています。
列のリスト {""} から列への参照に移動する際に何が間違っているのかわかりません。
ご協力をよろしくお願いいたします。
これが私が試したコードです
Names Default To Here( 1 );
Clear Globals();
dt = Data Table( "Untitled 910" );
dt2 = Data Table( "Soft Bin Summary" );
Try( For Each Row( :Yield SummaryBins = Word( 1, :Yield SummaryBins, "[]" ) ) );
grouplist = dt:Yield SummaryBins << get values;
For( i = N Items( grouplist ), i >= 1, i--,
If( grouplist[i] == "",
Remove From( grouplist, i, 1 ),
));
binss = {}; /// list contaiting bin value
For( i = 1, i <= N Items( grouplist ), i++,
If( Contains( grouplist[i], " " ),
Insert Into( binss, grouplist[i] )
)
);
adad = Words( binss[1], " " );
F = Eval Expr( Sum( Expr( adad ) ) );
/// Something doesn't seem to right in the below loop
For( i = 1, i <= N Items( binss ), i++,
dt2 << New Column( binss[i], "Numeric", "Continuous", Format( "Percent", 12, 2 ), Formula( Name Expr( F ) ) ););
ありがとう、
ジャック
高度な統計モデリングデータの探索と視覚化マスカスタマイゼーション品質およびプロセスエンジニアリング