Sto cercando di completare una semplice ricerca e sostituzione. Sto costruendo uno script più grande e vorrei sostituire del testo come vuoto. Ho provato il looping e la funzione munger, ma sembra che tutti gli esempi che ho trovato online siano più complicati del necessario. Ho allegato il mio set di dati. Fondamentalmente voglio cercare "< LOD" nell'intera tabella e sostituirlo con uno spazio vuoto. Inoltre mi piacerebbe fare lo stesso per "---". Infine, vorrei utilizzare lo script per modificare le colonne in numeriche/continue dopo che il testo è stato rimosso.
Grazie per l'aiuto!
Penso che il tema delle mie lezioni di oggi sia "Less is More". Grazie. Questo (di nuovo) funziona perfettamente.
Molte volte è possibile eliminare le specifiche per gruppo e lasciare che sia JMP a decidere cosa utilizzare, se si specifica semplicemente di utilizzare Per gruppo.Lo script seguente funziona alla grande senza tutta la confusione
Bubble Plot(
X( :RT1 ),
Y( :RT2 ),
Sizes( :Area ),
Coloring( :Group ),
Title Position( 0, 0 ),
By( :Sample ID )
);
Grazie, lo script ha funzionato perfettamente.
Nota a margine (e per favore fatemi sapere se devo avviare un nuovo thread di discussione per questo) ma con i dati che ho allegato in precedenza, sto cercando di creare grafici a bolle utilizzando lo script. Posso fare tutto in modo interattivo e quindi copiare lo script, tuttavia è specifico per i nomi degli ID campione nella prima colonna. Utilizzerò questo script con molte tabelle di dati diverse e il layout dei dati sarà sempre lo stesso, tuttavia, il numero di campioni inclusi nel file e gli ID dei campioni cambieranno. Esiste un modo semplice per adattare lo script seguente da utilizzare per qualsiasi ID campione, anziché dire "CM172-001".
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 )}
)
)
)
);Ecco un semplice pezzo di codice che trova i valori che desideri modificare, li modifica e quindi imposta le colonne su numeriche e continue
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" );
);
);
Bene, allora questo elimina un passaggio! Grazie per l'aiuto. Molto più facile.
Se cambi il tipo di dati da carattere a numerico, valori come "
Names Default to Here( 1 );
dt = New Table( "test",
New Column( "data",
Character, Nominal,
Values( { "3.1", "4.5", "<LOD></LOD>Ri: Trova e sostituisci sempliceApprezzo l'avvertimento, tuttavia, sto usando i dati solo per rappresentare graficamente le impronte digitali e il semplice fatto che il composto non sia stato rilevato ci interessa. Per qualsiasi analisi statistica imputeremo i valori ND in base ai limiti di rilevamento forniti.
Separatamente dalla domanda sullo scripting, la sostituzione dei valori censurare . Dovresti utilizzare stimatori che gestiscano dati censurati oltre a dati esatti.