imposta il valore sulle celle selezionateCiao,
Sto cercando di selezionare determinate celle nella tabella dati e impostare il valore 2 su di esse, ma non funziona. Qualcuno può controllare il mio script per vedere cosa c'è che non va?
sdt << selectwhere(
:Informat( "06/26/2018 16:49:00", "m/d/y h:m:s" ) <= :Time <= :Informat(
"06/26/2018 16:54:00",
"m/d/y h:m:s"
)
);
selRows = sdt << getselectedRows;
As Column( sdt, "Status" )[selRows] = "2";
Ri: imposta il valore sulle celle selezionateFunziona, grazie!
Ri: imposta il valore sulle celle selezionateIL Se la funzione assicura che si tenta solo di impostare Stato valori a 2 in caso di corrispondenze.
Non sono sicuro della differenza tra Colonna E Come Colonna .Generalmente uso solo Colonna .Se non funziona ci provo Come Colonna . 
Ri: imposta il valore sulle celle selezionateQual è la differenza di avere la funzione if qui:
if <SPAN class="token punctuation">(</SPAN>nrows<SPAN class="token punctuation">(</SPAN>selrows<SPAN class="token punctuation">)</SPAN> <SPAN class="token operator">></SPAN> <SPAN class="token number">0</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token function">Column</SPAN><SPAN class="token punctuation">(</SPAN> sdt<SPAN class="token punctuation">,</SPAN> <SPAN class="token string">"Status"</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">[</SPAN>selRows<SPAN class="token punctuation">]</SPAN> <SPAN class="token operator">=</SPAN> <SPAN class="token string">"2"</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
Inoltre, qual è la differenza tra ascolumn e column?
Cerca solo di capire la sceneggiatura
Ri: imposta il valore sulle celle selezionatePer prima cosa, rimuovi i due punti prima di Informat().Questo sta dicendo a JMP che Informat è un nome di colonna.Inizia togliendo quei due punti.Puoi anche semplificare il tuo script in questo modo:
sel rows = sdt << Get Rows Where(Informat("06/26/2018 16:49:00", "m/d/y h:m:s") <= :Time <= Informat("06/26/2018 16:54:00", "m/d/y h:m:s"));
sdt:Status[selRows]="2";È inoltre necessario verificare che lo stato sia la colonna dei caratteri.Se è numerico (anche se il tipo di modellazione è nominale o ordinale), è necessario rimuovere le virgolette intorno a "2".
Ri: imposta il valore sulle celle selezionateSe usi ottenere righe dove puoi assicurarti che ci siano righe che devono essere modificate.Come accennato, rimuovere i due punti iniziali da Informat.Modifica Come Colonna A Colonna .
selrows = sdt << get rows where(
Informat( "06/26/2018 16:49:00", "m/d/y h:m:s" ) <= :Time <= :Informat(
"06/26/2018 16:54:00",
"m/d/y h:m:s"
)
);
if (nrows(selrows) > 0,
Column( sdt, "Status" )[selRows] = "2";
);
Ri: imposta il valore sulle celle selezionateNon ho dati su cui eseguire il tuo script ma l'ho cambiato per i miei dati e ha funzionato bene (ma non ho usato la funzione informat()).Poi ho notato che hai i due punti ":" prima di informat () e l'editor jsl non mostra l'aiuto del testo al passaggio del mouse per informat con i due punti, ma lo mostra quando rimuovo quei due punti. Prova a rimuovere i due punti prima di informat () e vedi se questo aiuta. Il colon viene utilizzato per definire una variabile di colonna. con la sintassi ":name" forza nome da valutare come colonna della tabella dati.(modificato per fornire una descrizione più accurata, dal sito Web di JMP)
A proposito, grazie per il suggerimento sulla struttura logica lì. Non avevo idea di poter fare ax < y & y < z.