스플라인 피트 커브 이름을 얻는 방법?안녕하세요,
스플라인 맞춤 곡선 이름을 얻을 수있는 방법이 있습니까 (예 : 특정 열을 기준으로 피팅을 그룹화하는 경우).
내가 찾은 곡선을 참조하는 방법을 찾은 유일한 방법은 인덱스 번호입니다.
예 :
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"에 속해 있습니까?)
고맙습니다.
제목 : Re : 어떻게 스플라인 맞는 커브 이름을 얻으려면?짐 감사합니다. 모든 변수를 표시하고 샘플 데이터 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"이됩니다.하지만 이것을 조정해볼 것입니다. 또한 나는 그룹 단위로 스플라인 피트 (spine fit)를하는 것도 생각하고있다. 도움을 주셔서 다시 한 번 감사드립니다.
제목 : Re : 어떻게 스플라인 맞는 커브 이름을 얻으려면?커브 번호를 얻는 한 가지 방법은 다음과 같습니다.
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;
);