親愛なるコミュニティへ
現在、JSL を使用していくつかの定期的な JMP ルーチンを自動化しようとしています。 私のテーブルは、数百行のコードの後、私が望むフォームになりました。おそらく単純な二変量分析でJSLに失敗しました:(
例として、簡略化した表を添付しました。 クリックすると次のようになります。
- X = :日数、Y = :読み取り値、By = :分類
- => SHIFT ホット ボタン => :個人ごとにグループ化 => SHIFT ホット ボタン => 各値に合わせる
エディターからコピーされた結果のコードは次のとおりです。
Bivariate(
SendToByGroup( {Is Missing( :Classification )} ),
Y( :Readout ),
X( :Days ),
SendToByGroup(
{Is Missing( :Classification )},
Fit Where(
:Individuals == "Ind7",
Fit Each Value( {Line Color( {212, 73, 88} )} )
),
Fit Where(
:Individuals == "Ind22",
Fit Each Value( {Line Color( {66, 112, 221} )} )
)
),
SendToByGroup(
{:Classification == "A"},
Fit Where(
:Individuals == "Ind2",
Fit Each Value( {Line Color( {212, 73, 88} )} )
),
Fit Where(
:Individuals == "Ind4",
Fit Each Value( {Line Color( {61, 174, 70} )} )
),
Fit Where(
:Individuals == "Ind5",
Fit Each Value( {Line Color( {66, 112, 221} )} )
),
Fit Where(
:Individuals == "Ind6",
Fit Each Value( {Line Color( {204, 121, 41} )} )
),
Fit Where(
:Individuals == "Ind8",
Fit Each Value( {Line Color( {40, 182, 143} )} )
),
Fit Where(
:Individuals == "Ind9",
Fit Each Value( {Line Color( {162, 43, 221} )} )
),
Fit Where(
:Individuals == "Ind12",
Fit Each Value( {Line Color( {196, 189, 43} )} )
),
Fit Where(
:Individuals == "Ind14",
Fit Each Value( {Line Color( {39, 174, 174} )} )
),
Fit Where(
:Individuals == "Ind15",
Fit Each Value( {Line Color( {197, 41, 201} )} )
),
Fit Where(
:Individuals == "Ind24",
Fit Each Value( {Line Color( {142, 176, 40} )} )
),
Fit Where(
:Individuals == "Ind28",
Fit Each Value( {Line Color( {40, 154, 190} )} )
)
),
SendToByGroup(
{:Classification == "B"},
Fit Where(
:Individuals == "Ind1",
Fit Each Value( {Line Color( {212, 73, 88} )} )
),
Fit Where(
:Individuals == "Ind11",
Fit Each Value( {Line Color( {61, 174, 70} )} )
),
Fit Where(
:Individuals == "Ind16",
Fit Each Value( {Line Color( {66, 112, 221} )} )
),
Fit Where(
:Individuals == "Ind17",
Fit Each Value( {Line Color( {204, 121, 41} )} )
),
Fit Where(
:Individuals == "Ind21",
Fit Each Value( {Line Color( {40, 182, 143} )} )
),
Fit Where(
:Individuals == "Ind23",
Fit Each Value( {Line Color( {162, 43, 221} )} )
),
Fit Where(
:Individuals == "Ind25",
Fit Each Value( {Line Color( {196, 189, 43} )} )
),
Fit Where(
:Individuals == "Ind26",
Fit Each Value( {Line Color( {39, 174, 174} )} )
),
Fit Where(
:Individuals == "Ind27",
Fit Each Value( {Line Color( {197, 41, 201} )} )
)
),
SendToByGroup(
{:Classification == "C"},
Fit Where(
:Individuals == "Ind20",
Fit Each Value( {Line Color( {212, 73, 88} )} )
)
),
SendToByGroup(
{:Classification == "D"},
Fit Where(
:Individuals == "Ind3",
Fit Each Value( {Line Color( {212, 73, 88} )} )
),
Fit Where(
:Individuals == "Ind10",
Fit Each Value( {Line Color( {61, 174, 70} )} )
),
Fit Where(
:Individuals == "Ind13",
Fit Each Value( {Line Color( {66, 112, 221} )} )
),
Fit Where(
:Individuals == "Ind18",
Fit Each Value( {Line Color( {204, 121, 41} )} )
),
Fit Where(
:Individuals == "Ind19",
Fit Each Value( {Line Color( {40, 182, 143} )} )
)
),
By( :Classification )
);私の問題は、このスクリプトをこのようにハードコーディングすると、このテーブルに追加される新しい個人では機能しないことです。 また、何らかの形でリストと For() ループを使用する必要があることも認識しています。
リストについては、次のように始めました。
//Writes only the different individual values of column :Classification into a variable
classlist = dt:"Classification" << Get values;
classvalues = Associative Array(classlist) << Get Keys;
//Writes only the different individual values of column :Individuals into a variable
IDlist = dt:"Individuals" << Get values;
IDvalues = Associative Array(IDlist) << Get Keys;
しかし、For() ループに正しくアプローチする方法は、残念ながらわかりません...
誰かアイデアを持っているか、私を助けることができますか?
これは、あなたが望むことをすると私が思う大きなクラスの例です。
names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
dt << Bivariate(
Y( :weight ),
X( :height ),
GroupBy(:sex),
By( :age ),
FitLine(1)
);<BR />