Ich möchte ein einfaches Suchen und Ersetzen durchführen. Ich erstelle ein größeres Skript und möchte einen Text als Leerzeichen ersetzen. Ich habe Schleifen und die Munger-Funktion ausprobiert, aber es scheint, dass alle Beispiele, die ich online gefunden habe, komplizierter sind, als ich brauche. Ich habe meinen Datensatz angehängt. Ich möchte grundsätzlich die gesamte Tabelle nach „< LOD“ durchsuchen und durch ein Leerzeichen ersetzen. Zusätzlich möchte ich dasselbe für „---“ tun. Abschließend möchte ich ein Skript verwenden, um die Spalten in numerisch/kontinuierlich zu ändern, nachdem der Text entfernt wurde.
Danke für die Hilfe!
Ich denke, das Thema meines heutigen Unterrichts lautet „Weniger ist mehr“. Danke schön. Das funktioniert (wieder) perfekt.
Oftmals können Sie die Spezifika „Nach Gruppe“ eliminieren und JMP die Entscheidung überlassen, was verwendet werden soll, wenn Sie nur die Verwendung einer „Nach Gruppe“ angeben.Das folgende Skript funktioniert ohne all das Durcheinander einfach großartig
Bubble Plot(
X( :RT1 ),
Y( :RT2 ),
Sizes( :Area ),
Coloring( :Group ),
Title Position( 0, 0 ),
By( :Sample ID )
);
Vielen Dank, das Skript hat perfekt funktioniert.
Nebenbei bemerkt (und lassen Sie mich bitte wissen, ob ich hierfür einen neuen Diskussionsthread starten muss), aber mit meinen Daten, die ich zuvor angehängt habe, versuche ich, Blasendiagramme mithilfe von Skripten zu erstellen. Ich kann alles interaktiv erledigen und dann das Skript kopieren, es ist jedoch spezifisch für die Proben-ID-Namen in der ersten Spalte. Ich werde dieses Skript mit vielen verschiedenen Datentabellen verwenden und das Layout der Daten wird immer das gleiche sein, jedoch werden sich die Anzahl der in der Datei enthaltenen Proben und die Proben-IDs ändern. Gibt es eine einfache Möglichkeit, das folgende Skript so anzupassen, dass es für jede Proben-ID verwendet werden kann, anstatt „CM172-001“ zu sagen?
Bubble Plot(
SendToByGroup( {:Sample ID == "CM172-001"} ),
X( :RT1 ),
Y( :RT2 ),
Sizes( :Area ),
Coloring( :Group ),
Title Position( 0, 0 ),
By( :Sample ID ),
SendToByGroup(
{:Sample ID == "CM172-001"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-001"},
"1",
ScaleBox,
{Min( 11 ), Max( 22 ), Inc( 2 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-001"},
"2",
ScaleBox,
{Min( 2.84 ), Max( 2.97 ), Inc( 0.02 ), Minor Ticks( 1 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-002"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-002"},
"1",
ScaleBox,
{Min( 10 ), Max( 35 ), Inc( 5 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-002"},
"2",
ScaleBox,
{Min( 2.8 ), Max( 3.7 ), Inc( 0.1 ), Minor Ticks( 0 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-003"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-003"},
"1",
ScaleBox,
{Min( 11 ), Max( 22 ), Inc( 2 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-003"},
"2",
ScaleBox,
{Min( 2.83 ), Max( 2.96 ), Inc( 0.02 ), Minor Ticks( 1 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-004"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-004"},
"1",
ScaleBox,
{Min( 10 ), Max( 30 ), Inc( 5 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-004"},
"2",
ScaleBox,
{Min( 2.6 ), Max( 3.6 ), Inc( 0.2 ), Minor Ticks( 1 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-005"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-005"},
"1",
ScaleBox,
{Min( 10 ), Max( 30 ), Inc( 5 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-005"},
"2",
ScaleBox,
{Min( 2.7 ), Max( 3.7 ), Inc( 0.2 ), Minor Ticks( 1 )}
)
)
)
);Hier ist ein einfacher Code, der die Werte findet, die Sie ändern möchten, sie ändert und dann die Spalten auf numerisch und fortlaufend festlegt
Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names( character, string );
For( i = 1, i <= N Items( colList ), i++,
selRows = dt << get rows where(
Column( dt, colList[i] )[Row()] == "< LOD" | Column( dt, colList[i] )[Row()] == "---"
);
If( N Rows( selRows ) > 0,
Column( dt, colList[i] )[selRows] = "";
Column( dt, colList[i] ) << data type( "numeric" ) << modeling type( "continuous" );
);
);
Dann ersparen wir Ihnen einen Schritt! Danke für die Hilfe. Viel einfacher.
Wenn Sie den Datentyp von Zeichen auf Zahl ändern, werden Werte wie „
Names Default to Here( 1 );
dt = New Table( "test",
New Column( "data",
Character, Nominal,
Values( { "3.1", "4.5", "<LOD></LOD>Betreff: Einfaches Suchen und ErsetzenIch weiß die Warnung zu schätzen, aber ich verwende die Daten nur zur grafischen Darstellung von Fingerabdrücken, und die einfache Tatsache, dass die Verbindung nicht nachgewiesen wurde, ist für uns von Interesse. Für jede statistische Analyse würden wir die ND-Werte auf der Grundlage der angegebenen Nachweisgrenzen unterstellen.
Unabhängig von Ihrer Skriptfrage führt das Ersetzen der Zensur . Sie sollten Schätzer verwenden, die sowohl zensierte Daten als auch exakte Daten verarbeiten.