JMP 18.1.2 Extrahieren von RSquare-Werten aus der Y-x-AnpassungsanalyseDurch Ausführen von „Analysieren > Y an X anpassen“ habe ich den unten stehenden Code, der eine Datentabelle öffnet, aber in der Tabelle sind keine RSquare-Werte enthalten. Irgendwelche Ideen, was mir fehlt?
// Open Data Table
dt = Data Table( "Raw Data" );
// Run Fit Y by X Analysis with a By Variable
fitObj = dt << Fit Y by X( Y( :"Mean(VALUEABS)" ), X( :Mean ), By( :PARM_LABEL ) );
// Get the analysis report
rpt = fitObj << Get Report;
// Find all RSquare nodes in the report
rsquareNodes = rpt << Find All Matching Elements( "RSquare" );
Show( "Number of RSquare nodes found: " || Char( N Items( rsquareNodes ) ) );
// Initialize a list to store the by group and RSquare pairs
rsquareData = {};
// Loop over each RSquare node found
For( i = 1, i <= N Items( rsquareNodes ), i++,
{
// Extract the RSquare text and convert to numeric value
rsqText = rsquareNodes[i] << Get Text ; rsqVal = Num( rsqText ) ;
// Try to retrieve the by-group label.
parentObj = rsquareNodes[i] << Get Parent ; byLabel = "" ;
While( byLabel == "" & parentObj != {},
byLabel = parentObj << Get Text;
If( byLabel == "",
parentObj = parentObj << Get Parent
);
) ;
// Append the pair (by group label, RSquare value) to list.
Append( rsquareData, {byLabel, rsqVal} ) ; }
);
Show( rsquareData );
// Create a new data table to store the RSquare values by by-group.
rsqDT = New Table( "RSquare Values",
Add Columns(
Column( "By Group", Character, "Nominal" ),
Column( "RSquare", Numeric, "Continuous" )
)
);
// Populate the new data table with the extracted values
For( i = 1, i <= N Items( rsquareData ), i++,
{New Row( rsqDT ) ; rsqDT:("By Group")[Row()] = rsquareData[i][1] ; rsqDT:RSquare[
Row()] = rsquareData[i][2] ; }
);
// Display the new data table
Show( rsqDT );
(Oben wurde JSL von der einfachen Textanzeige in das JMP JSL-Anzeigeformat verschoben) txnelson
Automatisierung und SkriptingBetreff: JMP 18.1.2 Extrahieren von RSquare-Werten aus der Y-x-AnpassungsanalyseWelches RSquare suchen Sie? Normalerweise würden Sie dies manuell in JMP tun und dann das Skript verwenden, das JMP für Sie erstellt (oder einen Workflow verwenden und daraus ein Skript abrufen). In diesem Fall also:
1. Öffnen Sie Ihren Tisch
2. Führen Sie die Analyse durch

3. Nehmen Sie die erforderlichen Änderungen am Bericht/an der Analyse vor (ich passe die Zeile an)

4. Aus der Tabelle eine Datentabelle machen

5. Skript abrufen
// Open Data Table: Big Class.jmp
// → Data Table("Big Class")
Open("$SAMPLE_DATA/Big Class.jmp");
// Combine similar TableBoxes into a Data Table
// → Data Table("Untitled")
Local({obj},
obj = Data Table("Big Class") << Bivariate(
Y(:height),
X(:weight),
Fit Line({Line Color({230, 159, 0})}),
By(:age)
);
Report(obj[1])["Linear Fit", "Summary of Fit", Table Box(1)] <<
Make Combined Data Table;
obj[1] << Close Window;
);
Dann können Sie es ändern, um es ein bisschen besser zu machen und am Ende etwas wie
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate(
Y(:height),
X(:weight),
Fit Line({Line Color({230, 159, 0})}),
By(:age)
);
dt_result = Report(biv[1])["Linear Fit", "Summary of Fit", Table Box(1)] << Make Combined Data Table;
dt_result << Select Where(:Column 1 != "RSquare") << delete rows << clear select;Betreff: JMP 18.1.2 Extrahieren von RSquare-Werten aus der Y-x-AnpassungsanalyseEs gab mehrere Probleme mit Ihrer Syntax. Unten finden Sie ein Beispiel, wie ich das Problem angehen würde
// Open Data Table
dt = Data Table( "Raw Data" );
// Run Fit Y by X Analysis with a By Variable
fitObj = dt << Fit Y by X( Y( :"Mean(VALUEABS)" ), X( :Mean ), By( :PARM_LABEL ) );
dt=current data table();
fitObj = dt << Bivariate(
Y( :height ),
X( :weight ),
Fit Line( {Line Color( {212, 73, 88} )} ),
By( :sex )
);
nrpts = nitems(fitObj);
report(fitobj[1])[OutlineBox(1)] << get title
// Find all RSquare nodes in the report
Show( "Number of RSquare nodes found: " || Char( nrpts ) );
rsquareData = {};
// Initialize a list to store the by group and RSquare pairs
For Each( {obj}, fitObj,
r2=report(obj);
rsq = (r2["Linear Fit","Summary of Fit",numbercolbox(1)]<<GET></GET>Betreff: JMP 18.1.2 Extrahieren von RSquare-Werten aus der Y-x-AnpassungsanalyseDer ursprüngliche Code sieht definitiv so aus, als wäre er von KI generiert worden, was die vielen Fehler in der Syntax erklären würde.
Betreff: JMP 18.1.2 Extrahieren von RSquare-Werten aus der Y-x-AnpassungsanalyseVielen Dank für die Antwort. Ich suche nach dem RSquare-Wert. Ich habe die Analyse „Fit Y By X“ ausgeführt und den Code aus dem Protokoll genommen. Dann habe ich eine Anpassungslinie hinzugefügt, aber diese Aktion wurde nicht protokolliert. Es ist schon eine Weile her und ich hatte den Rechtsklick und die Funktion „In eine Datentabelle umwandeln“ vergessen. Vielen Dank also für die Auffrischung.
Betreff: JMP 18.1.2 Extrahieren von RSquare-Werten aus der Y-x-AnpassungsanalyseJim, danke für diese Lösung. Ich weiß das wirklich zu schätzen.
Betreff: JMP 18.1.2 Extrahieren von RSquare-Werten aus der Y-x-AnpassungsanalyseSie haben vollkommen recht! Wie ich bereits sagte, habe ich die Rechtsklick-Option „In Datentabelle umwandeln“ vergessen und bin auf ChatGPT zurückgegriffen.