Wie kann ich anhand einer UniqueVals-Kombination aus zwei Spalten auswählen und ausschließen?Ich bin hier also ratlos. Ich versuche, ein gefiltertes DT mit nur statistisch signifikanten Daten auszugeben, basierend auf zwei Spalten: Chart_ID und Recipe_ID. Ich kann es mit einer einzelnen Spalte zum Laufen bringen, aber mit zwei Spalten komme ich nicht klar.
- Ich stelle die Rohdaten mit Oneway dar (y=Mittelwert, x=Kammer, BY:Chart_ID, Recipe_ID) und führe den All-pairs-Tukey-tTest aus.
- Nehmen Sie dann die kombinierte pVal-Datentabelle.
- dann Auswahl aller Zeilen, bei denen pVal >0,05 ist, und Ausschluss
- Anschließend wird eine zusammengefasste Liste der UniqueVals nach Chart_ID erstellt (das sind alle Chart_IDs mit signifikanten pVals).
- dann Auswahl aller Zeilen in der Quell-DT mit passenden UniqueVals
- dann Auswahl umkehren und ausschließen
- --> Dadurch bleiben in der Quell-dt nur die Daten übrig, die nach Chart_ID tTest-signifikant sind.
Ich kann nicht herausfinden, wie ich die Recipe_ID in die zusammengefassten UniqueVals einfüge.
Gibt es eine bessere Möglichkeit, eine Quell-DT zu erhalten, bei der alle nicht signifikanten Diagramme/Rezepte ausgeschlossen sind?
//dtSPC --> my source data, raw SPC data. Need to exclude rows from Charts, Recipes with high pVals
/*plotting a basic Fit YbyX just to get pValues. Formatting and style done on final plot*/
ow1 = Oneway(
Y( :MEAN ),
X( :CHAMBER ),
By(:CHART_ID, :RECIPE),
//All pairs Tukey HSD test
All Pairs(
1,
Confidence Quantile( 0 ),
Difference Matrix( 0 ),
LSD Threshold Matrix( 0 ),
Connecting Letters Report( 0 ),
Ordered Differences Report( 1 )
),
);
/***********************************/
/***********************************/
// Create the combined data table, using xPath (return a list of the OutlineBoxes from the report that have the title Ordered Differences Report. Then, use the first of those to make the combined data table.)
outlines = (Report( ow1[1] ) << Top Parent) << XPath( "//OutlineBox[text()='Ordered Differences Report']" );
dt1 = outlines[1][Table Box( 1 )] << Make Combined Data Table;
dt1 = current data table();
dt1 << set name( "pValue PairWise by Channel Tukey");
dt1:CHART_ID << Data type( Numeric ) << Set Modeling Type( Nominal );
/***********************************/
/**********************************/
//Screen and show only the CHART_ID's w/ a Tukey pair pVal<0.05
//exclude all high pVal rows, leaving only low pVal Channels. Does not work in reverse.
dt1 << select where(:name("p-Value") > 0.05);
dt1 << exclude;
dt1 << clear select;
//create a list of remaining Unique CHART_ID's
summarize(dt1, uniqueVals=by(:CHART_ID));
//Convert to numeric
For( i = 1, i <= N Items(uniqueVals ), i++,
uniqueVals[i] = Num(uniqueVals[i] )
);
//extra, just to look at the data
//dtUnique = New Table( "uniqueVals less 0.05");
//dtUnique << New Column( "CHART_ID", Values(uniqueVals));
//select on SPC source data just the channels w/ low pVals
//need to choose SPC data table
dtSPC << clear select;
dtSPC << select where( contains( uniqueVals, :CHART_ID));
//invert and exclude, leaving only low pVal CHART_ID's
dtSPC << invert row selection << exclude;
dtSPC << clear select;Datenzusammenführung und -bereinigungBetreff: Wie wähle und schließe ich eine UniqueVals-Kombination aus zwei Spalten aus?das hat funktioniert! so ein einfacher GEWINN. einen verketteten Wert an einen String senden.Betreff: Wie wähle und schließe ich eine UniqueVals-Kombination aus zwei Spalten aus?Meine vorherige Associative Array()-Lösung funktioniert nicht richtig, wenn es doppelte Werte in den Spalten gibt (es könnte ganz einfach behoben werden), also verwende ich die for-Loop-Version.
Macht das was du willst?
Names Default To Here(1);
dtPopCorn = Open( "$SAMPLE_DATA/Popcorn.jmp" );
/*plotting a basic Fit YbyX just to get pValues. Formatting and style done on final plot*/
ow1 = Oneway(
Y( :yield ),
X( :batch),
By(:trial, :popcorn),
//All pairs Tukey HSD test
All Pairs(
1,
Confidence Quantile( 0 ),
Difference Matrix( 0 ),
LSD Threshold Matrix( 0 ),
Connecting Letters Report( 0 ),
Ordered Differences Report( 1 )
),
);
/***********************************/
/***********************************/
// Create the combined data table, using xPath (return a list of the OutlineBoxes from the report that have the title Ordered Differences Report. Then, use the first of those to make the combined data table.)
outlines = (Report( ow1[1] ) << Top Parent) << XPath( "//OutlineBox[text()='Ordered Differences Report']" );
dt1 = outlines[1][Table Box( 1 )] << Make Combined Data Table;
dt1 << set name( "pValue PairWise by Channel Tukey");
/***********************************/
/**********************************/
pVals = Loc(dt1:"p-Value"n << get as matrix <= 0.05);
comparisonStrings = {};
For(i = 1, i <= N Items(pVals), i++,
Insert Into(comparisonStrings, char(dt1:trial[pVals[i]]) || dt1:popcorn[pVals[i]]);
);
show(comparisonStrings);
dtPopCorn << clear select;
dtPopCorn << select where(contains(comparisonStrings, char(:trial)||:popcorn));Nur die Kombination mit einem p-Wert unter 0,05 ist Trial = 2 und Popcorm = Gourmet.

Betreff: Wie wähle und schließe ich eine UniqueVals-Kombination aus zwei Spalten aus?@jthi
Vielen Dank für die Tipps, aber ich bin etwas verwirrt über Ihr Skript. Es sieht so aus, als würde es nur ein paar Mal auswählen, tut aber nichts, um zu einem Quell-dt zurückzukehren.
Ich kann die pVals aus der kombinierten Datentabelle gut auswählen. Das Problem, das ich habe, besteht darin, zu versuchen, dann nach zwei Spalten in der kombinierten Datentabelle zusammenzufassen, dann zu den Hauptquelldaten zurückzukehren und mithilfe der Zusammenfassung auszuwählen.
Ich habe einen Beispielsatz gefunden, der so aussieht, als könnten wir über dieses Problem sprechen.
Ich kann nicht herausfinden, wie ich mit den beiden BY-Spalten zurück zur Quelle dt zusammenfassen kann
By(:trial, :oil amt),
dtPopCorn = Open( "$SAMPLE_DATA/Popcorn.jmp" );
/*plotting a basic Fit YbyX just to get pValues. Formatting and style done on final plot*/
ow1 = Oneway(
Y( :yield ),
X( :popcorn ),
By(:trial, :oil amt),
//All pairs Tukey HSD test
All Pairs(
1,
Confidence Quantile( 0 ),
Difference Matrix( 0 ),
LSD Threshold Matrix( 0 ),
Connecting Letters Report( 0 ),
Ordered Differences Report( 1 )
),
);
/***********************************/
/***********************************/
// Create the combined data table, using xPath (return a list of the OutlineBoxes from the report that have the title Ordered Differences Report. Then, use the first of those to make the combined data table.)
outlines = (Report( ow1[1] ) << Top Parent) << XPath( "//OutlineBox[text()='Ordered Differences Report']" );
dt1 = outlines[1][Table Box( 1 )] << Make Combined Data Table;
dt1 = current data table();
dt1 << set name( "pValue PairWise by Channel Tukey");
dt1:trial << Data type( Numeric ) << Set Modeling Type( Nominal );
/***********************************/
/**********************************/
//Screen and show only the trial's w/ a Tukey pair pVal<0.05
//exclude all high pVal rows, leaving only low pVal Channels. Does not work in reverse.
dt1 << select where(:name("p-Value") > 0.5); //I know...just setting 0.5 so that one row stands out.
dt1 << exclude;
dt1 << clear select;
//create a list of remaining Unique trial's
summarize(dt1, uniqueVals=by(:trial));
//Convert to numeric
For( i = 1, i <= N Items(uniqueVals ), i++,
uniqueVals[i] = Num(uniqueVals[i] )
);
//extra, just to look at the data
//dtUnique = New Table( "uniqueVals less 0.5");
//dtUnique << New Column( "trial", Values(uniqueVals));
//select on SPC source data just the channels w/ low pVals
//need to choose SPC data table
dtPopCorn << clear select;
dtPopCorn << select where( contains( uniqueVals, :trial));
//invert and exclude, leaving only low pVal trial's
dtPopCorn << invert row selection << exclude;
dtPopCorn << clear select;Betreff: Wie wähle und schließe ich eine UniqueVals-Kombination aus zwei Spalten aus?Sie könnten die numerische Spalte in Zeichen konvertieren und dann die beiden Spalten verketten, um eine Liste der Vergleichszeichenfolgen zu erhalten. Verwenden Sie dann diese Liste, um die gewünschten Zeilen auszuwählen (oder verwenden Sie assoziative Arrays). Ich habe kein Beispiel-Dataset, also ist hier eine Art Beispiel:
Names Default To Here(1);
dt = New Table("Untitled 22",
Add Rows(5),
Compress File When Saved(1),
New Column("CHART_ID",
Character,
"Nominal",
Set Values({"123", "1", "12", "0", "135"})
),
New Column("RECIPE",
Character,
"Nominal",
Set Values({"A", "A", "B", "B", "C"})
),
New Column("pval",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([0.1, 0.001, 0.051, 0.002, 0.1])
)
);
pVals = Loc(dt:pval << get as matrix > 0.05); //get rows over 0.05
comparisonStrings = {};
For(i = 1, i <= N Items(pVals), i++,
Insert Into(comparisonStrings, char(dt:CHART_ID[pVals[i]]) || dt:RECIPE[pVals[i]]);
);
wait(1);
dt << Select Where(Contains(comparisonStrings, char(:CHART_ID)||:RECIPE));
wait(1);
dt << clear select;
wait(1);
aa = Associative Array(Eval List(dt:CHART_ID[pVals]), EvalList(dt:RECIPE[pVals]));
dt << Select Where(Contains(aa, :CHART_ID) & aa[:CHART_ID] == :RECIPE);Verwenden Sie Scripting Index, um besser zu verstehen, was vor sich geht (und bei Bedarf zum Debuggen).
Betreff: Wie wähle und schließe ich eine UniqueVals-Kombination aus zwei Spalten aus?Danke für die Info. Ich habe die ASA-Erklärung gelesen und sie macht meistens Sinn. Meine Situation (und ich nehme an, viele andere Leute) hat es jedoch mit Tausenden von Diagrammen zu tun, und ich brauche eine Möglichkeit, die Liste schnell zu durchsuchen und zu kürzen, um die wichtigsten zu sehen. Hier ist ein Screenshot als Beispiel. Ich muss 5000 Diagramme durchsehen und brauche eine gute Methode, um die wichtigsten zu identifizieren, auf die ich Zeit verwenden kann. Irgendwo muss ich die Grenze ziehen.
Ich habe auch FDR nachgeschlagen, aber ich glaube nicht, dass dies zutrifft, da ich nur ein einziges X-Merkmal verwende. Es gibt keine FDRs mit nur einem einzigen X.

Zum Auswählen und Zusammenfassen:
Das ist es. Ich kann nicht herausfinden, wie ich die Zusammenfassung bekomme, um sie dann zu übersetzen, damit ich die Quelldaten auswählen kann.
Zuvor habe ich eine einzelne Spalte (Chart_ID) ausgewählt und dann wieder in numerisch konvertiert, da Summarize Zeichen ausgibt. Von dort aus konnte ich die Quelle dt Chart_ID Col anhand der Liste der UniqueVals (die die Chart_IDs waren) auswählen.
Wie kann dies mit zwei verschiedenen Spalten geschehen, die numerisch und zeichenhaft sind?
Betreff: Wie wähle und schließe ich eine UniqueVals-Kombination aus zwei Spalten aus?Hallo Aliegner1!
Vielleicht verstehe ich das nicht, aber Sie könnten versuchen, signifikante p-Werte auszuwählen, eine neue Tabelle zu unterteilen und dann nach Chart_ID und Recipe_ID zusammenzufassen?
Nochmal, vielleicht verstehe ich nicht, aber was du tust, riecht nach " p-Hacking ".Ich empfehle Ihnen zumindest, die ASA-Erklärung zu p-Werten zu lesen und dann im Statistikindex unter der JMP-Hilfe nach Falscherkennungsrate zu suchen.
Viel Glück!