スプラインフィット曲線の名前を取得する方法こんにちは、
スプラインフィット曲線の名前を取得する方法はありますか(つまり、フィットを特定の列でグループ化した場合)。
私が検索したところ、曲線を参照する方法を見つける唯一の方法はそのインデックス番号です。
例えば
obj = Bivariate(Y( :Weight ), X( :Height ), Fit Line);
obj << (Curve[1] << Line Width ( 2 ));
グループ化列からリストを作成するだけのコードでこのコードを使用することで、これを回避できると思いました。
groupcol=Column(dt, "Group Col Name");
Summarize( A = by( groupcol ) );
B = groupcol << get property( value ordering );
If( Is Empty( B ),
GroupList = A,
GroupList = B
);
したがって、GroupList [1]はCurve [1]を参照し、GroupList [2]はCurve [2]を参照し、以下同様です。
しかし、私はこれに関して一つの問題を見ました。GroupList [2]のポイントが少なすぎてスプラインフィットができない場合、Curve [2]は実際にはGroupList [3]に属します。だから私はこれが本当にそれを行う方法ではないことに気づいた。
したがって、ここに私の質問があります:
1。特定のグループ化列(たとえば、"Red"、"Blue"、"Green"、"Yellow"を含む列)でスプラインフィットするスクリプトを作成すると、ffを知る方法があります。
1.1スプラインフィットはいくつ描かれましたか?
1.2どのスプラインフィットがどのグループに属していますか?(すなわち、Curve [2]は "Blue"、"Green"、"Yellow"のいずれに属しますか)?
ありがとうございました。
再:どのようにスプラインフィット曲線の名前を取得するには?ありがとうジム。すべての変数を表示し、サンプルデータCandy Bars.jmpに適用するために少し調整しました。
Names Default To Here( 1 );
// Read in some sample data
dt = Current Data Table();
// Run the bivariate and create the Fit line for each of the sites
biv = bivariate( y( :Total fat g ), x( :Calories ), Groupby( :Brand ), Fit line );
// The Outline Box for the fit can be read
TheTitle = Report( biv )[Outline Box( 2 )] << get title;
Show( TheTitle );
// Here is a little bit of code that can get the list of values for the Linear Fit, and
// get the curve number
AllTitles = CurveNumber = {};
i = 2;
FitNum = 0;
While( Try( Report( biv )[Outline Box( i )] << get title, "" ) != "",
If(
Word( 1, Report( biv )[Outline Box( i )] << get title ) == "Linear" & Word(
2,
Report( biv )[Outline Box( i )] << get title
) == "Fit",
FitNum = FitNum + 1;
Show (FitNum);
AllTitles[FitNum] = Word( 3, Report( biv )[Outline Box( i )] << get title );
Show (AllTitles[FitNum]);
CurveNumber[FitNum] = FitNum;
Show(CurveNumber[FitNum]);
);
i = i + 1;
);私はこの出力を得ます:
/*:
TheTitle = "Linear Fit Brand==\!"Adams & Brooks\!"";
FitNum = 1;
AllTitles[FitNum] = "Brand==\!"Adams";
CurveNumber[FitNum] = 1;
FitNum = 2;
AllTitles[FitNum] = "Brand==\!"Annabelle\!"";
CurveNumber[FitNum] = 2;
FitNum = 3;
AllTitles[FitNum] = "Brand==\!"Bit-O-Honey\!"";
CurveNumber[FitNum] = 3;
FitNum = 4;
AllTitles[FitNum] = "Brand==\!"Brown";
CurveNumber[FitNum] = 4;
FitNum = 5;
AllTitles[FitNum] = "Brand==\!"Charms\!"";
CurveNumber[FitNum] = 5;
FitNum = 6;
AllTitles[FitNum] = "Brand==\!"Hershey\!"";
CurveNumber[FitNum] = 6;
FitNum = 7;
AllTitles[FitNum] = "Brand==\!"Just";
CurveNumber[FitNum] = 7;
FitNum = 8;
AllTitles[FitNum] = "Brand==\!"Leaf\!"";
CurveNumber[FitNum] = 8;
FitNum = 9;
AllTitles[FitNum] = "Brand==\!"M&M/Mars\!"";
CurveNumber[FitNum] = 9;
FitNum = 10;
AllTitles[FitNum] = "Brand==\!"Myerson\!"";
CurveNumber[FitNum] = 10;
FitNum = 11;
AllTitles[FitNum] = "Brand==\!"Nabisco\!"";
CurveNumber[FitNum] = 11;
FitNum = 12;
AllTitles[FitNum] = "Brand==\!"Nestle\!"";
CurveNumber[FitNum] = 12;
FitNum = 13;
AllTitles[FitNum] = "Brand==\!"Pearson\!"";
CurveNumber[FitNum] = 13;
FitNum = 14;
AllTitles[FitNum] = "Brand==\!"Sherwood\!"";
CurveNumber[FitNum] = 14;
FitNum = 15;
AllTitles[FitNum] = "Brand==\!"Standard\!"";
CurveNumber[FitNum] = 15;
FitNum = 16;
AllTitles[FitNum] = "Brand==\!"Tobler\!"";
CurveNumber[FitNum] = 16;
FitNum = 17;
AllTitles[FitNum] = "Brand==\!"Tootsie\!"";
CurveNumber[FitNum] = 17;
FitNum = 18;
AllTitles[FitNum] = "Brand==\!"Weider\!"";
CurveNumber[FitNum] = 18;
お気づきのとおり、スペースがあるとスクリプトは名前を切り取ります。例えば "Adams&Brooks"は "Adams"になり、"Brown&Haley"は "Brown"になりますが、これも微調整してみます。また、回避策として、グループごとにスプラインフィットを実行することも考えています。助けてくれてありがとう。
再:どのようにスプラインフィット曲線の名前を取得するには?これがCurve Numbersを得るための1つの方法です。
Names Default To Here( 1 );
// Read in some sample data
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
// Run the bivariate and create the Fit line for each of the sites
biv = bivariate( y( :npn1 ), x( :pnp1 ), Groupby( :site ), Fit line );
// The Outline Box for the fit can be read
TheTitle = Report( biv )[Outline Box( 2 )] << get title;
Show( TheTitle );
// Here is a little bit of code that can get the list of values for the Linear Fit, and
// get the curve number
AllTitles = CurveNumber = {};
i = 2;
FitNum = 0;
While( Try( Report( biv )[Outline Box( i )] << get title, "" ) != "",
If(
Word( 1, Report( biv )[Outline Box( i )] << get title ) == "Linear" & Word(
2,
Report( biv )[Outline Box( i )] << get title
) == "Fit",
FitNum = FitNum + 1;
AllTitles[FitNum] = Word( 3, Report( biv )[Outline Box( i )] << get title );
CurveNumber[FitNum] = FitNum;
);
i = i + 1;
);