複数の日付列とデータ列を持つ管理図の自動化こんにちは、
以下のようなフォーマットの表から管理図を作成する方法を自動化しようとしています。
| エンジン | 314 - 日付 | 314 - パラメーター1 | 314パラメーター2 | 314−パラメータ等。 | 213パラメーター1 | 213 - 日付 | 241パラメータ1 | 241パラメータ2 | 241 - 日付 |
| # | 日付 | # | # | # | # | 日付 | # | # | 日付 |
| # | 日付 | # | # | # | # | 日付 | # | # | 日付 |
私は私が欲しいものに近づけるようなコードを持っています。
Rcols = dt << GetColumnNames( Continuous, String );
nw = New Window( "Control Charts", myVLB = V List Box() );
For( i = 1, i <= N Items( Rcols ), i++,
cc = Control Chart(
Sample Label( Column( dt, Rcols[1] ) ),
KSigma( 3 ),
Chart Col( Column( dt, Rcols[i] ), Levey Jennings )
);
myVLB << Append( Report( cc ) );
cc << close window;
);
しかし、今問題はサンプルラベルをパラメータのIDの正しい日付にする方法を見つけようとしています。各IDには同量のパラメータがないため、テーブルはそのように統一されていないため、これがやや困難になります。
ありがとうございます。
日時:複数の日付列とデータ列を持つ管理図の自動化それはあなたが挿入しようとしているアイテムがリストではないことを意味します。 このコードでは:
a=3;
insert into(c,a)
変数 "c"はリストとして定義されていないので、エラーが発生します。
日時:複数の日付列とデータ列を持つ管理図の自動化Jim Jimさん、これは私が必要としているものに本当に近いと思います。私はエラーが出ています:
'Insert Into'のアクセスまたは評価でL値にのみ挿入できます
これが何を意味するのか、いくつかの光を当てていただけますか。
ありがとう
日時:複数の日付列とデータ列を持つ管理図の自動化私は私の解決を終える前に掲示されるジム、... 再び。 私のアプローチはほぼ同じですが、私はリストを扱うために作成された関数を使用するのが好きです。 私がLfunc(list、expr)と呼ぶ関数は、リスト内の各項目で式を実行します。 [これは久しぶりのJMPの欲しいものリストの項目]。
そのため、以下のJSLの3行目は、指定した例に対して[2、7、10]を返します。これらの各列について、コードを取得します。"params ="で始まる行は、そのコードで始まるすべての列(日付を含まない)を返します。
Lfunc()のような機能を組み込んだJMPを代わりに使用するというアプローチ以外に、非アクティブな管理図を作成していることに気付いたのであれば、それがあなたの目標かもしれません。 強調表示やホバーヘルプのために「ライブ」の対話型チャートが必要な場合は、添付ファイルFindColumns_CC.jslのコメント付きコードを参照してください。
dt=current data table();
Rcols = dt << GetColumnNames(String ); //get all coumns so the code can use the column number
dateCols = Loc(Matrix(Lfunc(RCols, Expr(Contains(Lowercase(x),"date"))))); //2,7,10
nw = New Window( "Control Charts", myVLB = V List Box() );
for(i=1, i<=nrow(dateCols), i++,
code = Trim(word(1, Rcols[dateCols[i]], "-"));
params = Loc(Matrix(Lfunc(RCols, Expr(StartsWith(x,code) & !Contains(lowercase(x),"date")) )));
日時:複数の日付列とデータ列を持つ管理図の自動化私はあなたの質問を理解したと思います。データ内のすべてのグループを検索し、各リストに含まれる列のリストを個別に作成するというアプローチを取りました。 それから、グループはそれらにまたがってループされ、そのリストの各列が処理されます。私は自分のソリューションをテストするためのデータテーブルを持っていないので、コードを解決方法の良いガイドとして使うべきです。問題はありますが、決定的な解決策と見なすべきではありません
Rcols = dt << GetColumnNames( Continuous, String );
// Process the columns into group and separate lists for each group
groupList = {};
For( i = 2, i <= N Items( Rcols ), i++,
theGroup = Word( 1, Rcols[i], "-" );
// Check if the group has been seen before
If( Contains( groupList, theGroup ) > 0,
// If this is a new group, create a list to hold the column names
Eval( Parse( "Group_" || theGroup || " = {};" ) );
// Add the group name to the groupList
Insert Into( groupList, theGroup );
// Add the current parameter to the new group list
Insert Into( "Group_" || theGroup, Rcols[i] );
,
// If this isn't a new group list, then add it to the
// already existing group list
Insert Into( "Group_" || theGroup, Rcols[i] )
);
);
// Create the display window
nw = New Window( "Control Charts", myVLB = V List Box() );
// Loop across the groups
For( group = 1, group <= N Items( groupList ), group++,
// Set a standard list name to have the values of the current Group_list
Eval( Parse( "tempRcols = Group_" || groupList[group] || ";" ) );
// Generate the charts
For( i = 2, i <= N Items( tempRcols ), i++,
cc = Control Chart(
Sample Label( Column( dt, tempRcols[1] ) ),
KSigma( 3 ),
Chart Col( Column( dt, tempRcols[i] ), Levey Jennings )
);
myVLB << Append( Report( cc ) );
cc << close window;
);
);